2. 超高性能
Dubbo被设计用于解决阿里巴巴超大规模的电商微服务集群实践,并在各个行业头部企业经过多年的十万、百万规模的微服务实践检验,因此,Dubbo在通信性能、稳定性方面具有无可比拟的优势,非常适合构建近乎无限水平伸缩的微服务集群,这也是Dubbo从实践层面优于业界很多同类的产品的巨大优势。
1) 高性能数据传输
Dubbo内置支持Dubbo2、Triple两款高性能通信协议。其中
• Dubbo2是基于TCP传输协议之上构建的二进制私有RPC通信协议,是一款非常简单、紧凑、高效的通信协议。
• Triple是基于HTTP/2的新一代RPC通信协议,在网关穿透性、通用性以及Streaming通信上具备优势,Triple完全兼容gRPC协议。
Dubbo2 & Triple benchmark性能指标:
Dubbo协议在不同版本的实现对比
Triple vs Dubbo
2) 构建可伸缩的微服务集群
业务增长带来了集群规模的快速增长,而集群规模的增长会对服务治理架构带来挑战:
• 注册中心的存储容量瓶颈
• 节点动态变化带来的地址推送与解析效率下降
• 消费端存储大量网络地址的资源开销
• 复杂的网络链接管理
• 高峰期的流量无损上下线
• 异常节点的自动节点管理
以上内容直接关系到微服务集群的稳定性,因此很容易成为影响集群和业务增长的瓶颈,集群规模越大,问题带来的影响面也就被进一步放大。很多开发者可能会想只有几个应用而已,当前不需要并不关心集群规模,但作为技术架构选型的关键因素之一,我们还是要充分考虑微服务集群未来的可伸缩性。并且基于对业界大量微服务架构和框架实现的调研,一些产品的性能瓶颈点可能很快就会到来(部分产品所能高效支持的瓶颈节点规模阈值都是比较低的,比如几十个应用、数百个节点)。
服务发现模型内存占用变化
• Dubbo3接口级服务发现模型,常驻内存较2.x版本下降约50%
• Dubbo3应用级服务发现模型,常驻内存较2.x版本下降约75%
服务发现模型GC变化
• Dubbo3接口级服务发现模型,YGC次数2.x版本大幅下降,从数百次下降到十几次。
• Dubbo3应用级服务发现模型,FGC次数2.x版本大幅下降,从数百次下降到零次。
Dubbo的优势在于近乎无限水平扩容的集群规模,在阿里巴巴双十一场景万亿次调用的实践检验,通过本书后续内容了解Dubbo构建生产可用的、可伸缩的大规模微服务集群背后的原理。