<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Node.js on Apache Dubbo</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/tags/node.js/</link><description>Recent content in Node.js on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 07 Oct 2023 17:50:35 +0800</lastBuildDate><atom:link href="https://deploy-preview-3203--dubbo.netlify.app/zh-cn/tags/node.js/index.xml" rel="self" type="application/rss+xml"/><item><title>Apache Dubbo 首个 Node.js 3.0-alpha 版本正式发布</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/blog/2023/10/07/apache-dubbo-%E9%A6%96%E4%B8%AA-node.js-3.0-alpha-%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/</link><pubDate>Sat, 07 Oct 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/blog/2023/10/07/apache-dubbo-%E9%A6%96%E4%B8%AA-node.js-3.0-alpha-%E7%89%88%E6%9C%AC%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83/</guid><description>&lt;h1 id="关于-apache-dubbo3">关于 Apache Dubbo3&lt;/h1>
&lt;p>Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架，同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。经过近几年发展，Dubbo3 已在阿里巴巴集团各条业务线实现全面推广，成功取代运行多年的 HSF 框架；同时 Dubbo3 的多语言体系也有了快速发展，目前涵盖的多语言体系有：&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/apache/dubbo">apache/dubbo&lt;/a> (java)&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/dubbo-go">apache/dubbo-go&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/dubbo-js">apache/dubbo-js&lt;/a> (web、node.js)&lt;/li>
&lt;li>&lt;a href="https://github.com/apache/dubbo-rust">apache/dubbo-rust&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>基于 Dubbo3 定义的 &lt;strong>Triple&lt;/strong> 协议，你可以轻松编写浏览器、移动端、gRPC 兼容的 RPC 服务，并让这些服务同时运行在 HTTP/1 和 HTTP/2 上。Dubbo Node.js SDK 支持使用 IDL 或编程语言特有的方式定义服务，并提供一套轻量的 API 来发布或调用这些服务。&lt;/p>
&lt;p>&lt;img alt="image.png" src="https://deploy-preview-3203--dubbo.netlify.app/imgs/blog/2023/9/nodejs/img.png">&lt;/p>
&lt;h1 id="关于-dubbo3-nodejs-首个发布版">关于 Dubbo3 Node.js 首个发布版&lt;/h1>
&lt;p>Dubbo-js 项目于 9 月份刚刚发布了支持 Dubbo3 协议的首个 alpha 版本，该项目是 Dubbo3 的 Typescript 版本实现，提供了 Web、Node.js 两种发布包。其中，Web 框架能让开发者直接在浏览器页面访问后端服务，Node.js 则进一步丰富了后端微服务技术栈的选择。当前 Node.js 版本主要是实现了 Triple 协议的完整支持，接下来的版本中，社区将继续完善地址发现、负载均衡等服务治理能力。目前 dubbo-js 项目快速发展中，对参与 apache/dubbo-js 项目感兴趣的开发者，欢迎搜索钉钉群：&lt;strong>29775027779&lt;/strong> 加入开发者群组。&lt;/p></description></item><item><title>从跨语言调用到dubbo2.js</title><link>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/</link><pubDate>Tue, 14 Aug 2018 00:00:00 +0000</pubDate><guid>https://deploy-preview-3203--dubbo.netlify.app/zh-cn/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/</guid><description>&lt;blockquote>
&lt;p>&lt;a href="https://github.com/dubbo/dubbo2.js">dubbo2.js&lt;/a> 是 &lt;a href="https://www.qianmi.com/">千米网&lt;/a> 贡献给 dubbo 社区的一款 nodejs dubbo 客户端，它提供了 nodejs 对原生 dubbo 协议的支持，使得 nodejs 和 java 这两种异构语言的 rpc 调用变得便捷，高效。&lt;/p>
&lt;/blockquote>
&lt;h2 id="微服务跨语言调用">微服务跨语言调用&lt;/h2>
&lt;p>微服务架构已成为目前互联网架构的趋势，关于微服务的讨论，几乎占据了各种技术大会的绝大多数版面。国内使用最多的服务治理框架非阿里开源的 dubbo 莫属，千米网也选择了 dubbo 作为微服务治理框架。另一方面，和大多数互联网公司一样，千米的开发语言是多样的，大多数后端业务由 java 支撑，而每个业务线有各自开发语言的选择权，便出现了 nodejs，python，go 多语言调用的问题。
跨语言调用是一个很大的话题，也是一个很有挑战的技术活，目前业界经常被提及的解决方案有如下几种，不妨拿出来老生常谈一番：&lt;/p>
&lt;ul>
&lt;li>spring cloud。spring cloud 提供了一整套微服务开发组件，它主要面向 java 开发，但由于其使用的协议是基于 restful 风格的 http 协议，这使得其天然具备跨语言能力，异构语言只需要提供 http 客户端，便可以实现跨语言调用。&lt;/li>
&lt;li>service mesh。号称下一代微服务框架的 service mesh，其解决跨语言问题的核心在于 SideCar ，SideCar 在 service mesh 的发展过程中概念不断的迁移，但本质都是完成了一件事：处理服务间通信，负责实现请求的可靠传递。&lt;/li>
&lt;li>motan。&lt;a href="https://github.com/weibocom/motan">motan&lt;/a> 是新浪微博开源的一款跨语言服务治理框架，在其早期版本中仅支持 motan-java，随着版本演进，在目前最新版本(1.1.0)中，提供了 motan-go，motan-php，motan-openresty 等跨语言特性。类似于 service mesh 中的 SideCar，motan 借助于 motan-go 作为 agent 完成协议的转发，并且依赖于定制协议：motan2，实现跨语言调用。&lt;/li>
&lt;/ul>
&lt;p>当我们再聊跨语言调用时我们在聊什么？纵观上述几个较为通用，成熟的解决方案，可以得出结论：解决跨语言调用的思路无非是两种：&lt;/p>
&lt;ul>
&lt;li>寻找一个通用的协议&lt;/li>
&lt;li>使用 agent 完成协议的适配&lt;/li>
&lt;/ul>
&lt;p>如果一个新型的团队面临技术选型，我认为上述的方案都可以纳入参考，可考虑到遗留系统的兼容性问题&lt;/p></description></item></channel></rss>