多個註冊中心

Dubbo-go 應用程式可設定的多介面維度註冊中心。

1. 準備工作

  • 已安裝 dubbo-go cli 工具和相關工具
  • 建立新的示範應用程式
  • 在本機啟動 Nacos 和 Zookeeper

2. 使用多個註冊中心

修改伺服器設定 go-server/conf/dubbogo.yaml,並同時在兩個註冊中心上註冊服務。

dubbo:
  registries:
    zookeeper: # Specify the zookeeper registration center
      protocol: zookeeper
      address: 127.0.0.1:2181
    nacos: # Specify the nacos registration center
      protocol: nacos
      address: 127.0.0.1:8848
  protocols:
    triple:
      name: tri
      port: 20000
  provider:
    services:
      GreeterProvider:
        registry-ids: # Simultaneous registration
          - zookeeper
          - nacos
        interface: ""

修改客戶端設定 go-client/conf/dubbogo.yaml

dubbo:
  registries:
    nacos: # Specify the nacos registration center
      protocol: nacos
      address: 127.0.0.1:8848
    zookeeper: # Specify the zookeeper registration center
      protocol: zookeeper
      address: 127.0.0.1:2181
  consumer:
    references:
      GreeterClientImpl:
        registry-ids: # Discovered from the nacos registry service
          - nacos
        protocol: tri
        interface: ""
      GreeterClientImpl2:
        registry-ids: # service discovery from zookeeper registry
          - zookeeper
        protocol: tri
        interface: ""

修改客戶端程式碼,定義一個名為 GreeterClientImpl2 的客戶端 stub 類別

var grpcGreeterImpl2 = new(GreeterClientImpl2)

type GreeterClientImpl2 struct{
api. GreeterClientImpl
}

客戶端撰寫呼叫程式碼

func main() {
config. SetConsumerService(grpcGreeterImpl)
config.SetConsumerService(grpcGreeterImpl2)
if err := config.Load(); err != nil {
panic(err)
}

logger.Info("start to test dubbo")
req := &api.HelloRequest{
Name: "Laurence",
}
reply, err := grpcGreeterImpl.SayHello(context.Background(), req)
if err != nil {
logger. Error(err)
}
logger.Infof("nacos server response result: %v\n", reply)

reply, err = grpcGreeterImpl2. SayHello(context. Background(), req)
if err != nil {
logger. Error(err)
}
logger.Infof("zk server response result: %v\n", reply)
}

3. 多註冊中心服務發現驗證

分別啟動 go-server/cmd 和 go-client/cmd,檢視兩個成功的呼叫日誌

INFO cmd/client.go:55 nacos server response result: name:"Hello laurence" id:"12345" age:21

INFO cmd/client.go:61 zk server response result: name:"Hello laurence" id:"12345" age:21

最後修改日期:2023 年 1 月 2 日:增強 Dubbogo 文件 (#1800) (71c8e722740)