All Products
Search
Document Center

Enterprise Distributed Application Service:Dubbo user documentation

Last Updated:Mar 12, 2026

This topic describes the user documentation of Apache Dubbo for your reference.

Get started

Set up your environment and get a Dubbo application running.

Topic

Description

Background information

Core concepts behind Apache Dubbo and its role in distributed systems

Requirements

Software and environment prerequisites

Architecture 2.6.1

Component layout and interaction model for Dubbo 2.6.1

Architecture 2.7.1

Updated architecture and new capabilities in Dubbo 2.7.1

Usage

Basic patterns for building and running Dubbo services

Quick start

Step-by-step guide to get started with your first Dubbo application

Dependencies

Required libraries and dependencies

Maturity

Feature stability levels and production-readiness indicators

Configuration

Configure Dubbo services through XML, properties files, annotations, or the API.

Topic

Description

XML configuration

Define services, references, and registries in XML files

Properties configuration

Use .properties files for lightweight configuration

API configuration

Configure Dubbo programmatically with Java code

Annotation configuration

Use Java annotations to declare services and references

Dynamic configuration center

Push configuration changes at runtime

Configuration loading process

How Dubbo resolves and merges configuration from multiple sources

Automatic loading of environment variables

Map environment variables to Dubbo configuration properties

Examples

Working examples for common Dubbo features, organized by category.

Service registration and discovery

Topic

Description

Preflight check

Verify provider availability before the consumer starts

Explicit target

Connect directly to a specific provider, bypassing the registry

Subscribe only

Discover providers through the registry without registering the local service

Register only

Register the local service with the registry without subscribing to other providers

Static service

Register services with a fixed address that does not change dynamically

Multiple registries

Route services across more than one registry server

Load balancing and fault tolerance

Topic

Description

Load balancing

Configure load balancing strategies for service invocations

Fault tolerance strategy

Handle failures with configurable fault tolerance policies

Service downgrade

Return fallback results when a provider is unavailable or slow

Routing rule

Direct traffic to specific providers based on conditions

Configure rules

Apply governance rules dynamically at runtime

Service model and versioning

Topic

Description

Service group

Isolate different implementations of the same interface by group

Multiple versions

Run multiple versions of a service side by side for safe rollout

Multiple protocols

Expose the same service over more than one protocol simultaneously

Group merger

Aggregate results from providers across different service groups

Invocation patterns

Topic

Description

Asynchronous call

Invoke remote services without blocking the calling thread

Asynchronous execution

Run provider-side logic asynchronously to improve throughput

Local call

Invoke a service within the same JVM, skipping network overhead

Callback parameter

Receive asynchronous results through a callback interface

Event notification

Trigger events on invocation success, failure, or completion

Generic reference

Call any service without compile-time dependency on its interface

Generic service

Implement a provider that handles arbitrary service interfaces

Echo service

Test service availability with a lightweight echo request

Context

Pass and retrieve request-scoped metadata during invocations

Implicit parameters

Attach hidden key-value pairs to RPC calls without changing the interface signature

Traffic control and connection management

Topic

Description

Concurrency control

Limit the number of concurrent requests a provider or consumer handles

Configure connections

Set connection pool size, timeout, and keep-alive parameters

Lazy connect

Delay TCP connection creation until the first request is sent

Stickiness connection

Pin a consumer to the same provider for session-affinity use cases

Token authorization

Require a token to prevent unauthorized direct access to providers

Thread model

Customize the Netty thread pool and dispatch strategy

Advanced features

Topic

Description

Local stub

Run pre- or post-processing logic on the consumer side before or after a remote call

Local mock

Return mock data when the provider is unavailable, useful for testing and degradation

Delay publish

Hold off service registration until the application is fully initialized

Parameter validation

Validate method parameters before the call runs

Cache result

Cache invocation results to reduce repeated remote calls

ReferenceConfig cache

Reuse ReferenceConfig instances to avoid creating duplicate proxies

Distributed transaction

Coordinate transactions across multiple services

Automatic thread dump

Trigger a thread dump automatically when Dubbo detects an issue

Graceful shutdown

Drain in-flight requests and deregister the provider before the JVM exits

Logging, networking, and serialization

Topic

Description

Hostname binding

Control which network interface and hostname Dubbo binds to

Logger strategy

Switch between Log4j, SLF4J, JCL, and JDK logging frameworks

Access log

Record every incoming invocation for auditing and debugging

Service container

Run Dubbo services standalone without a web container

Netty4

Enable the Netty 4 transport for improved performance

Using efficient Java serialization in Dubbo (Kryo and FST)

Replace the default serializer with Kryo or FST for faster serialization

Simplify registry URLs

Reduce registry URL length by removing redundant parameters

API reference

Java API documentation for Dubbo classes and interfaces.

XML configuration reference

Detailed attribute and usage descriptions for each Dubbo XML tag.

Tag

Description

Introduction

Common attributes and conventions shared across Dubbo XML tags

dubbo:service

Expose a local Java class as a remote Dubbo service

dubbo:reference

Create a proxy to consume a remote Dubbo service

dubbo:protocol

Configure the communication protocol (port, serialization, thread pool)

dubbo:registry

Connect to a registry server for service discovery

dubbo:monitor

Enable invocation metrics collection and reporting

dubbo:application

Set application-level properties such as name and owner

dubbo:module

Group related services into a logical module

dubbo:provider

Set default values for all dubbo:service tags in the same configuration

dubbo:consumer

Set default values for all dubbo:reference tags in the same configuration

dubbo:method

Override settings for a specific method within a service or reference

dubbo:argument

Configure serialization or validation rules for a specific method argument

dubbo:parameter

Pass arbitrary key-value pairs as extension parameters

dubbo:config-center

Connect to an external configuration center for centralized management

Protocol references

Supported communication protocols, each with connection details, use cases, and constraints.

Protocol

Description

Introduction

Protocol selection guidance and comparison

dubbo://

Default high-performance binary protocol suited for high-throughput and low-latency scenarios

rmi://

Java RMI protocol for integration with legacy RMI services

hessian://

Hessian binary protocol with built-in HTTP transport, useful for cross-language calls

http://

Standard HTTP protocol for simple RESTful-style invocations

webservice://

SOAP-based Web Services protocol for enterprise system integration

thrift://

Apache Thrift protocol for cross-language RPC

memcached://

Access Memcached servers through the Dubbo service interface

redis://

Access Redis servers through the Dubbo service interface

rest://

RESTful protocol for HTTP-based service invocations

Registry server references

Registry options for service discovery, each with setup instructions and trade-offs.

Registry

Description

Introduction

Registry selection guidance and comparison

Multicast registry

Zero-dependency registry for development and testing on a local network

ZooKeeper registry server

Production-grade registry backed by Apache ZooKeeper

Nacos registry center

Registry and configuration center backed by Alibaba Nacos

Redis registry server

Registry implementation using Redis pub/sub for service notifications

Simple registry server

Lightweight registry for testing, implemented as a standard Dubbo service

Metadata reference

Service metadata management: how Dubbo handles interface metadata across providers and consumers.

Telnet command reference

Use the built-in Telnet interface to inspect running services, invoke methods, and troubleshoot issues from the command line.

QoS command usage

The Quality of Service (QoS) command port provides health checks, graceful shutdown, and runtime diagnostics.

Maven plug-in reference

Maven plug-in for Dubbo applications.

Best practice

Topic

Description

Recommended usage

Preferred approaches for common configuration scenarios

Capacity plan

Estimate hardware and cluster size based on expected traffic

Performance report

Benchmark data and tuning guidelines for optimizing Dubbo throughput and latency

Test coverage report

Code coverage metrics and testing strategies for Dubbo services

Version upgrade

Topic

Description

2.7.x upgrade procedures and notes

Breaking changes, migration steps, and compatibility notes for upgrading to Dubbo 2.7.x

Erlang

Apache Dubbo provides an Erlang client. The topics below cover setup and configuration for Erlang-based consumers and providers.

Topic

Description

Quick start

Set up an Erlang Dubbo project and run a basic consumer-provider example

Consumer configuration

Configure service references, timeouts, and load balancing for Erlang consumers

Provider configuration

Register and expose Erlang services to the Dubbo ecosystem

Serialization configuration

Choose and configure a serialization format for Erlang Dubbo communication