微服务下rpc调用的客户端和服务端实现原理

一个端口对应一个服务的情况(客户端每个rpc client对应一个连接池,服务端每个服务对应一个线程池):

图中红色竖线代表rpc调用的客户端stub和服务端skeleton,每个rpc服务对应一个端口。客户端每个服务对应一个连接池,服务端每个服务对应一个线程池,用于响应客户端的请求。通常情况下,客户端和服务端是长连接。

 

单端口多服务场景下,默认配置的情况(客户端每个rpc client对应一个连接池,服务端一个端口下的所有服务共用一个线程池):

单端口多服务是指rpc调用的服务端多个服务共用同一个端口,默认情况下,这些服务也会共用一个线程池。如果担心服务端共用一个线程池会导致服务之间相互影响,可以为不同的Service或者Method配置不同的线程池。