使用Netty通信

使用 Netty 通信

如果你想使用 Netty 代替组件默认使用的 Grpc,那么你只需要在 rpc 客户端和服务端分别将 Netty 客户端和服务端相关类注入即可

  1. 以下是一个在 rpc 客户端使用 Netty 客户端通信的一个例子,首先你可以创建一个配置类例如 RpcClientConfiguration, 然后在配置类中注入 Netty 客户端
@Configuration
public class RpcClientConfiguration {

    @Bean
    public RpcClient rpcClient(){
        return new NettyClient();
    }

    @Bean
    public RemotingInvoker remotingInvoker(RpcClient rpcClient,
                                           RequestInterceptor requestInterceptor,
                                           RequestIdGenerator requestIdGenerator){
        return new NettyRemotingInvoker(rpcClient, requestInterceptor, requestIdGenerator);
    }
}
  1. 下面是一个在 rpc 服务端使用 Netty 服务端通信的一个例子,首先你可以创建一个配置类例如 RpcServerConfiguration, 然后在配置类中注入 Netty 服务端即可
@Configuration
public class RpcServerConfiguration {

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

    @Bean
    public RpcServer rpcServer(MessageHandler messageHandler, ServerConfiguration configuration){
        return new NettyServer(messageHandler, configuration);
    }
}

这样,rpc 客户端和服务端底层通信使用的就都是 Netty 了