The Apache Software Foundation has promoted its Java-based remote procedure call (RPC) framework, Apache Dubbo, from incubator to top-level project status. Dubbo includes interface-based remote call, fault tolerance, intelligent load balancing, and automatic service registration and discovery.
Like other RPC systems, Dubbo is based on the notion of defining a service, i.e. specifying methods to be called remotely with their parameters and return types. On the server, Dubbo implements the interface and listens for client calls. On the client, a stub provides the same methods as the server. Other specific features of Dubbo include:
- Support for multiple load balancing strategies, with downstream service status used to reduce latency and boost system throughput.
- Support for service registries that can detect services offline or online.
- A microkernel and plug-in design that can be extended by third-party implementation across core features including protocol, serialization, and transport.
- Runtime traffic routing, which can be configured so traffic can be routed based on rules. This supports capabilities including data center routing and blue-green deployment. Blue-green is a change management strategy for devops that is similar to AB testing.
- Visualized service governance, with tools for tasks including querying of health status, service metadata, and statistics.
The most common way to run Dubbo is within the Spring Framework, although Dubbo also can be run within an API configuration. Dubbo was open-sourced by e-commerce company Alibaba and has been used by other companies including China Life and China Telecom.
You can download Apache Dubbo from its Apache website.