参考这个教程来启动Nacos。
Tag router可以通过标签对流量进行管控,以下为示例代码。
服务端部分:
ins, err := dubbo.NewInstance(
dubbo.WithName("tag-server"),
dubbo.WithTag("test-Tag"), // set application's tag
dubbo.WithRegistry(
registry.WithNacos(),
registry.WithAddress(RegistryAddress),
),
dubbo.WithProtocol(
protocol.WithTriple(),
protocol.WithPort(20000),
),
)
参数:
客户端部分:
atta := map[string]string{
constant.Tagkey: "test-tag",
constant.ForceUseTag: "true", // 使用string类型
}
ctx := context.WithValue(context.Background(), constant.AttachmentKey, atta)
resp, err := svc.Greet(ctx, &greet.GreetRequest{Name: name})
参数:
constant.TagKey: 设置客户端发送请求时所携带的tag标签。constant.ForceUseTag: 设置是否强制匹配标签。未携带标签的流量只能打到未携带标签的服务,携带标签的流量则可以打到携带相应标签的服务以及不具有标签的服务(取决于是否配置force参数)。
完整示例请见: 本示例完整代码。