概述

注册中心是 Dubbo 服务治理的核心组件。Dubbo 依赖注册中心的协调来实现服务(地址)发现。自动服务发现是微服务实现动态扩展、负载均衡和流量管理的基础。Dubbo 的服务发现机制经历了 Dubbo2 时代的面向接口的服务发现和 Dubbo3 时代的应用级服务发现。有关详细信息,请参阅 [服务发现机制](/zh-cn/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/) 分析以了解具体的演进过程。

基本用法

开发应用程序时必须指定 Dubbo 注册中心组件。配置非常简单,只需指定注册中心的集群地址即可

以 Spring Boot 开发为例,在 application.yml 中添加注册中心配置项

dubbo
 registry
  address: {protocol}://{cluster-address}

其中,protocol 是选择的配置中心类型,cluster-address 是访问注册中心的集群地址,例如

address: nacos://localshot:8848

如果需要集群格式地址,可以使用 backup 参数

address: nacos://localshot:8848?backup=localshot:8846,localshot:8847

应用程序必须指定 Dubbo 注册中心,即使未启用注册中心(可以将地址设置为空地址 address='N/A')。

除了上述内容之外,根据每个配置中心,您可以参考 注册中心配置参考手册 或通过 parameters 参数进行扩展。

配置中心和元数据中心

配置中心和元数据中心是实现 Dubbo 高级服务治理能力的基础组件。与注册中心相比,这两个组件的配置通常是可选的。

为了兼容 2.6 及更早版本的配置,Dubbo 会将某些注册中心类型(例如 Zookeeper、Nacos 等)同时用作元数据中心和配置中心。

dubbo
 registry
  address: nacos://localhost:8848

框架解析后的默认行为

dubbo
 registry
  address: nacos://localhost:8848
 config-center
  address: nacos://localhost:8848
 metadata-report
  address: nacos://localhost:8848

可以通过以下两个参数调整或控制默认行为

dubbo
 registry
  address: nacos://localhost:8848
  use-as-config-center: false
  use-as-metadata-report: false

注册中心生态

Dubbo 主干目前支持的主流注册中心实现包括

  • Zookeeper
  • Nacos
  • Redis

它还支持 Kubernetes 和 Mesh 系统的服务发现。

此外,Dubbo 扩展生态 还提供了 Consul、Eureka 和 Etcd 等注册中心扩展实现。也欢迎通过 注册中心 SPI 扩展 为 Dubbo 生态系统贡献更多注册中心实现。

Dubbo 还支持在应用程序中 [指定多个注册中心](../multiple-registry/),并按注册中心对服务进行分组,这使得服务组管理或服务迁移更加容易。


上次修改时间:2023 年 1 月 2 日:增强英文文档 (#1798) (95a9f4f6c1c)