使用Grpc通信

使用 Grpc 通信

如果你想使用 Grpc 进行通信其实不需要做任何配置,因为组件默认使用就是 Grpc 通信

以下为该组件客户端的自动配置代码

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(ClientConfiguration.class)
@ConditionalOnBean(annotation = {EnableOpenRpcClient.class})
public class ClientAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public RpcClient client(){
        return new GrpcClient();
    }

    @Bean
    @ConditionalOnMissingBean
    public RemotingInvoker remotingInvoker(RpcClient client,
                                           RequestInterceptor requestInterceptor,
                                           RequestIdGenerator requestIdGenerator){
        return new GrpcRemotingInvoker(client, requestInterceptor, requestIdGenerator);
    }

    // ~

}

以下为该组件服务端的自动配置代码

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(ServerConfiguration.class)
@ConditionalOnBean(annotation = {EnableOpenRpcServer.class})
public class ServerAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public MessageHandler messageHandler(MessageProcess messageProcess){
        return new GrpcMessageHandler(messageProcess);
    }

    @Bean
    @ConditionalOnMissingBean
    public RpcServer server(MessageHandler messageHandler,
                            ServerConfiguration configuration){
        return new GrpcServer(configuration, messageHandler);
    }

    // ~
}

因此,如果你想让客户端和服务端底层通信都是用 Grpc,那么你不需要做任何额外的操作,当然你也可以自定义其他通信方式。