使用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,那么你不需要做任何额外的操作,当然你也可以自定义其他通信方式。