服务注册

引入依赖

  1. go get github.com/polarismesh/grpc-go-polaris-go@latest

初始化 polaris.yaml

你需要在项目的根路径下创建一个 polaris.yaml 文件用于 grpc-go-polaris 初始化 polaris sdk。polaris.yaml配置详细

服务注册

  1. // 完成 grpc Server 的创建以及注册 grpc service
  2. srv := grpc.NewServer()
  3. listen, err := net.Listen("tcp", "0.0.0.0:8080")
  4. if err != nil {
  5. log.Fatal(err)
  6. }
  7. pb.RegisterEchoServerServer(srv, &EchoQuickStartService{
  8. actualPort: listen.Addr().(*net.TCPAddr).Port,
  9. })
  10. // 将 使用 polaris.Serve 方法启动 grpc server
  11. if err := polaris.Serve(srv, listen,
  12. polaris.WithServiceName("QuickStartEchoServerGRPC"),
  13. ); nil != err {
  14. log.Printf("listen err: %v", err)
  15. }

服务端 Options

WithGRPCServerOptions(opts …grpc.ServerOption)

设置 gRPC-Server 的相关 Option。

WithServerNamespace(namespace string)

设置 grpc 服务注册到北极星的命名空间,默认为 default。

WithServiceName(svcName string)

设置 grpc 服务的名称,可选,不过不设置,则会通过 grpc.Server 的 GetServiceInfo() 获取所有 grpc service 信息,进行服务注册。

WithServerMetadata(metadata map[string]string)

设置服务实例的标签信息。

WithServerHost(host string)

设置服务实例注册的 host 信息,可选,默认将通过和北极星服务端建立一次 TCP 连接获取本机对外 IP

WithServerVersion(version string)

设置服务实例的版本信息。

WithTTL(ttl int) ServerOption

设置服务实例心跳上报的周期,默认 5s

WithToken(token string)

当北极星服务端开启客户端鉴权时,需要设置用户/用户组访问凭据,鉴权文档可参考 权限控制

WithDelayRegisterEnable(strategy DelayStrategy)

设置延迟注册策略

WithGracefulStopEnable(duration time.Duration)

启用服务实例优雅下线能力,默认开启

WithGracefulStopDisable()

禁用服务实例优雅下线能力

如何基于 grpc-go-polaris 完成一个服务注册的程序