Dubbo is designed to address Alibaba’s large-scale e-commerce microservice cluster practices and has been tested in tens of thousands to millions of microservice practices in leading enterprises across various industries over the years. Therefore, Dubbo has unparalleled advantages in communication performance and stability, making it very suitable for building nearly infinitely scalable microservice clusters. This is also a significant advantage of Dubbo over many similar products in the industry from a practical perspective.
Dubbo natively supports two high-performance communication protocols: Dubbo2 and Triple. Among them:
Below are the benchmark data based on Dubbo 3.2 version. You can also perform your own benchmarking through the dubbo-benchmark project.
Compared to Dubbo 2.x and early 3.x versions:
Learn more
Business growth brings rapid growth in cluster size, and the growth in cluster size poses challenges to the service governance architecture:
The above issues are directly related to the stability of the microservice cluster, so they can easily become bottlenecks affecting cluster and business growth. The larger the cluster size, the more amplified the impact of these issues. Many developers might think that they only have a few applications and currently do not need to worry about cluster size. However, as a key factor in technical architecture selection, we must fully consider the future scalability of the microservice cluster. Based on extensive research on microservice architectures and framework implementations in the industry, some products’ performance bottlenecks may arrive quickly (the threshold for efficiently supporting bottleneck nodes in some products is relatively low, such as dozens of applications and hundreds of nodes).
Dubbo’s advantage lies in its nearly infinite horizontal scalability of cluster size. Verified by the practice of trillions of calls in Alibaba’s Double 11 scenario, understand the principles behind Dubbo’s construction of production-ready, scalable large-scale microservice clusters through the following content:
Dubbo3 has built-in implementations of rate limiting and scheduling algorithms that can adaptively sense the cluster load status and intelligently adjust traffic distribution. From the perspectives of both consumers and providers, it intelligently adjusts traffic distribution to ensure that traffic is scheduled to instances with the best processing capabilities, thereby improving the throughput and stability of the entire cluster.
Adaptive load balancing considers how to allocate requests to the machine instances with the best processing capabilities from the consumer’s perspective. Dubbo3 introduces two new load balancing algorithms:
P2C
algorithm based on fairness considerations.adaptive
, which attempts to adaptively measure the throughput capacity of provider-side machines and then allocate traffic to machines with high throughput capacity as much as possible to improve the overall performance of the system.Unlike load balancing, which operates on the consumer side, rate limiting functions on the provider side. Its purpose is to limit the maximum number of concurrent tasks that a provider instance can handle. Theoretically, the processing capacity of a server machine has an upper limit. Therefore, when the number of concurrent requests reaches or approaches this limit, rejecting some requests is actually a better choice. Compared to manually setting a static maximum concurrency value in advance, the adaptive rate limiting algorithm can dynamically adjust the maximum concurrency value of the server machine, allowing it to handle as many incoming requests as possible without overloading the machine.
For more details, please refer to the Dubbo3 Service Resilience Design Document