多注册中心

多注册中心

一个 Dubbo 应用可以配置的多个接口维度的注册中心,多注册中心可用于集群隔离、迁移等多种场景,关于这部分更详细的说明可参考 Dubbo Java 多注册中心说明

API配置方式

  1. ins, _ := dubbo.NewInstance(
  2. dubbo.WithRegistry(
  3. registryWithID("nacos"),
  4. registry.WithNacos(),
  5. registry.WithAddress("127.0.0.1:8848"),
  6. ),
  7. dubbo.WithRegistry(
  8. registryWithID("zookeeper"),
  9. registry.WithZookeeper(),
  10. registry.WithAddress("127.0.0.1:2181"),
  11. ),
  12. )

指定某个 server 下的服务注册到哪个注册中心:

  1. // 指定 server 下的服务注册到 zookeeper 注册中心
  2. srv, _ := ins.NewServer(server.WithServerRegistryIDs([]string{"zookeeper"}))
  3. // 指定 server 下的服务注册到 nacos 注册中心
  4. srv2, _ := ins.NewServer(server.WithServerRegistryIDs([]string{"nacos"}))

指定某个特定服务注册到哪个注册中心:

  1. srv, _ := ins.NewServer()
  2. greet.RegisterGreetServiceHandler(srv, &GreetTripleServer{}, server.WithRegistryIDs([]string{"zookeeper"}))

以上使用方式对 client 侧类似。

YAML配置方式

修改服务端配置 go-server/conf/dubbogo.yaml, 同时将服务注册在两个注册中心上。

  1. dubbo:
  2. registries:
  3. zookeeper: # 指定 zookeeper 注册中心
  4. protocol: zookeeper
  5. address: 127.0.0.1:2181
  6. nacos: # 指定 nacos 注册中心
  7. protocol: nacos
  8. address: 127.0.0.1:8848
  9. protocols:
  10. triple:
  11. name: tri
  12. port: 20000

支持的注册中心

  • Nacos
  • Zookeeper
  • Polaris
  • Kubernetes

比如使用 Polaris 作为注册中心时,你需要指定以下内容,使用 API 或 YAML 配置文件均可以:

  1. dubbo:
  2. registries:
  3. polarisMesh:
  4. protocol: polaris
  5. address: ${北极星服务端IP}:8091
  6. namespace: ${北极星命名空间信息}
  7. token: ${北极星资源鉴权 token} # 如果北极星服务端开启了针对客户端的鉴权,则需要配置该参数

对于 Kubernetes 注册中心的使用方式,请参考 控制面 文档。

最后修改 September 13, 2024: Refactor website structure (#2860) (1a4b998f54b)