服务注册
引入依赖
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>grpc-java-polaris</artifactId>
<version>${grpc-java-polaris.version}</version>
</dependency>
初始化 polaris.yaml
你需要在项目的根路径下创建一个 polaris.yaml 文件用于 grpc-java-polaris 初始化 polaris sdk。polaris.yaml配置详细
如何使用
将原本的 ServerBuilder 替换为 PolarisGrpcServerBuilder 即可实现将 gRPC-java 服务注册到北极星中
原本 gRPC-java 的创建方式
server = ServerBuilder.forPort(port).addService(new GreeterImpl()).build().start();
使用 gRPC-java-polaris 的创建方式
Server server = PolarisGrpcServerBuilder.forPort(port).addService(new GreeterImpl()).build().start();
注册信息控制
命名空间
默认情况下,gRPC-java
注册到北极星的 default
命名空间中,如果希望注册到别的命名空间,可通过设置namespace
的方式
public class GrpcServerDemo {
public static void main(String[] args) {
Server server = PolarisGrpcServerBuilder
.forPort(0)
.namespace("grpc-java-demo")
.addService(new HelloProvider(metadata))
.addService(new HiProvider())
.build();
Server server = server.start();
JvmHookHelper.addShutdownHook(() -> {
server.shutdown();
});
}
}
注册粒度
默认情况下,gRPC-java
的注册粒度是按照 ServerServiceDefinition 来进行注册的,如果希望将整个 gRPC-java
进程作为一个服务进行注册的话,可通过设置 applicationName
的方式
public class GrpcServerDemo {
public static void main(String[] args) {
Server server = PolarisGrpcServerBuilder
.forPort(0)
.applicationName("grpc-java-demo")
.addService(new HelloProvider(metadata))
.addService(new HiProvider())
.build();
Server server = server.start();
JvmHookHelper.addShutdownHook(() -> {
server.shutdown();
});
}
}
实例属性设置
public class GrpcServerDemo {
public static void main(String[] args) {
Server server = PolarisGrpcServerBuilder
.forPort(0)
// 设置实例的权重信息
.weight(int)
// 设置实例的元数据信息
.metadata(Map<String, String>)
// 设置实例的版本信息
.version(String)
.addService(new HelloProvider(metadata))
.addService(new HiProvider())
.build();
Server server = server.start();
JvmHookHelper.addShutdownHook(() -> {
server.shutdown();
});
}
}