Apache Dubbo-js重大更新,采用全新架构
OSC开源社区 昨天
以下文章来源于FOSS Lab ,作者局长
FOSS LabFree and Open Source Software,自由与开源软件
Apache Dubbo-js 近日合并了一个来自 vivo 开源团队的 PR,并进行了重大更新,涉及到架构方面的变化。
Apache Dubbo-js 是 Apache Dubbo 的原生 Node.js 客户端。
▲ 新架构
新功能
核心模块进行重新拆分,现已被抽象为 consumer, server, registry, setting 和 common 五个核心模块
添加 dubbo-server 模块,提供完整 dubbo tcp 服务器服务的基本功能
添加 dubbo-server 以接受 dubbo 请求,对请求参数进行序列化和反序列化
新增服务注册功能,可以注册至 Zookeeper 和 nacos
增强调度程序对请求的调度,采用 fast error 的理念,完善错误信息并使其更加精确
增强 dubbo-server 的底层调试日志,方便快速定位问题
增强注册到 zk 的 dubbo-server 的 dubbo url,添加 side, pid, generic, protocol, dynamic, category, anyhost, timestamp 和其他参数
增强型扩展 dubbo-server 支持中间件机制,此机制可以延长整个调用的生命周期
重构 dubbo 请求和响应的序列化实现,以与上游版本保持一致
添加独立的心跳管理模块以简化 consumer 和 server 之间的通信
添加 nacos 作为注册中心
错误修复
修复 dubbo-consumer 的 decodeDubboResponse 的序列化问题,以及错误响应 err 对象的反序列化问题
修复 consumer 和 server 之间的心跳机制,以避免出现大量的 heartbeat storms。目前 server 将在收到心跳后立即回复,consumer 将定期检查并发送
修复 dubbo-consumer 的 dubboVersion 版本设置,该版本应为 dubbo 协议的协议版本,而不是 dubbo 库的版本
详情查看:https://github.com/apache/dubbo-js/pull/228