阿里集团业务驱动的升级 —— 聊一聊Dubbo 3.0 的演进思路
三位一体
Aliware
Dubbo 3.0 带来的好处
Aliware
业务收益
Dubbo 3.0 概览
Aliware
应用级服务注册发现
Aliware
随着单体应用拆分为多微服务应用的基本完成,大规模的服务拆分和重组已经不再是痛点,大部分接口都只被一个应用提供或者固定几个应用提供。
大量用于标志地址信息的 URL 都是存在极大冗余的,如超时时间、序列化等。这些配置变更频率极低,却在每个 URL 中都出现。
接口应用映射关系:上报和查询接口到应用的映射,可以决定客户端是否启用应用级,避免业务代码变更;
应用级元数据快照:当一个应用不同接口之间使用的配置不同就会出现数据的分化,因此在应用级方案里,提出了元数据快照的概念,即每个应用在每次发布时都会统一生成一份元数据快照,这个快照包含当前应用的元数据版本以及当前应用提供的所有接口的配置。这个快照 ID 会存储在 URL 中,这样既提供了动态变更能力, 又在量级上减少了数据存储对内存的压力。
Dubbo 3.0-云原生&阿里背书、易用
Aliware
下一代RPC协议
协议需要解决跨语言互通的问题。传统的多语言多 SDK 模式和 Mesh 化跨语言模式都需要一种更通用易扩展的数据传输格式。
协议应该提供更完善的请求模型,除了 Request/Response 模型,还应该支持 Streaming 和 Bidirectional。
在性能上保留 request Id 机制,以避免队头阻塞带来的性能损耗。
易扩展,包括但不限于 Tracing/ Monitoring 等支持,也应该能被各层设备识别,降低用户理解难度。
Service Mesh
业务方期望升级 Mesh 方案,但却无法接受由于 Sidecar 进行流量劫持所带来的性能损耗,这种情况常见于核心业务场景
期望降低 Sidecar 运维成本,降低系统复杂度
遗留系统升级缓慢,迁移过程漫长,多种部署架构⻓期共存
多种部署环境,这里的多种部署环境包括了如 VM 虚拟机、Container 容器等多种部署方式,也包括了多种类型应用混合部署,例如 Thin SDK 与 Proxyless 方案混合部署,对性能敏感应用部署 Proxyless 模式,对于周边应用采用 Thin SDK 部署方案,多种数据面共同由统一控制面进行调度。
未来的部署
Aliware
部署在K8s上
部署在Istio上
柔性增强规划
Aliware
从单一服务视角看,Dubbo 期望的目标是对外提供一种压不垮的服务,即是在请求数特别高的情况下,可以通过选择性地拒绝一些的请求来保证总体业务的正确性、时效性。
从分布式视角看,要尽可能降低因为复杂的拓扑、不同节点性能不一导致总体性能的下降,柔性调度机制能够以最优的方式动态分配流量,使异构系统能够根据运行时的准确服务容量合理分配请求,从而达到性能最优。
Dubbo 3.0 路线图
Aliware
﹀
﹀
﹀
想要讨论更多与 Dubbo 相关的内容,可搜寻群号:21976540 加入