服务注册

引入依赖

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

初始化 polaris.yaml

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

服务注册

// 完成 grpc Server 的创建以及注册 grpc service
srv := grpc.NewServer()
listen, err := net.Listen("tcp", "0.0.0.0:8080")
if err != nil {
	log.Fatal(err)
}
pb.RegisterEchoServerServer(srv, &EchoQuickStartService{
	actualPort: listen.Addr().(*net.TCPAddr).Port,
})

// 将 使用 polaris.Serve 方法启动 grpc server
if err := polaris.Serve(srv, listen,
	polaris.WithServiceName("QuickStartEchoServerGRPC"),
); nil != err {
	log.Printf("listen err: %v", err)
}

服务端 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 完成一个服务注册的程序