服务注册

引入依赖

<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();
        });
    }
}

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