explaingit

apache/dubbo

📈 Trending41,520JavaAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Java framework for building distributed microservices that handles service-to-service communication, load balancing, and failure recovery automatically.

Mindmap

mindmap
  root((Dubbo))
    What it does
      Service discovery
      Remote procedure calls
      Load balancing
      Failure handling
    How it works
      Service registry
      Serialization
      Protocol support
      Traffic routing
    Use cases
      Large backend systems
      E-commerce platforms
      Enterprise applications
    Tech stack
      Java
      Spring Boot
      ZooKeeper
      Nacos

Things people build with this

USE CASE 1

Build large-scale Java backend systems where multiple services need to communicate reliably across a network.

USE CASE 2

Deploy e-commerce platforms with dozens of microservices (user, order, payment) that call each other automatically.

USE CASE 3

Add automatic load balancing and failover to existing Java service architectures without rewriting communication logic.

USE CASE 4

Implement service discovery and routing rules so services can find and call each other dynamically as instances scale up or down.

Tech stack

JavaSpring BootZooKeeperNacosConsulgRPCHTTP/2

Getting it running

Difficulty · hard Time to first run · 1h+

Requires running multiple external services (ZooKeeper/Nacos/Consul) and understanding distributed system concepts before seeing a working example.

Use freely for any purpose, including commercial use, as long as you comply with Apache License 2.0 terms including attribution and liability disclaimers.

In plain English

Apache Dubbo is an open-source Java framework for building distributed microservices applications. Originally created at Alibaba and later donated to the Apache Software Foundation, it solves the problem of how separate services in a large application talk to each other reliably and efficiently across a network. In a microservices architecture, you might have dozens or hundreds of individual services, a user service, an order service, a payment service, and so on, each running on different servers. When one service needs to call a function in another, it cannot just call a method directly the way it would in a single program. Instead, it has to make a network call, handle failures, figure out which server is available, spread the load across multiple instances, and ensure calls are fast. This is called RPC (Remote Procedure Call), and Dubbo handles all of this complexity. Here is how it works: a service provider defines a Java interface and registers itself with a service registry (typically Apache ZooKeeper or Nacos, centralized directories that track which services are running and where). A consumer wanting to call that service looks up the registry to find available providers, then Dubbo makes the actual network call transparently. From the consumer's perspective, it looks like a normal Java method call. Dubbo handles serialization (converting objects to bytes for transmission), load balancing (distributing calls across multiple provider instances), automatic retry on failure, circuit breaking (stopping calls to unhealthy services), and traffic routing rules. Dubbo supports multiple protocols including its own high-performance binary protocol, gRPC, HTTP/2, and REST. You would use Dubbo when building large-scale Java backend systems where different services need to communicate efficiently, it is particularly prevalent in Chinese enterprise applications and large e-commerce platforms. The stack is Java, with Spring Boot integration and support for service registries like ZooKeeper, Nacos, or Consul.

Copy-paste prompts

Prompt 1
Show me how to set up a Dubbo service provider and consumer in Spring Boot that communicate through ZooKeeper.
Prompt 2
How do I configure load balancing and circuit breaker policies in Dubbo to handle service failures gracefully?
Prompt 3
What's the simplest way to migrate an existing Java application with multiple services to use Dubbo for RPC?
Prompt 4
How do I use Dubbo with gRPC protocol instead of the default binary protocol, and what are the tradeoffs?
Prompt 5
Show me how to implement custom traffic routing rules in Dubbo so certain requests go to specific service instances.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.