客户端存根(client stub)用于存放服务器端地址信息,将客户端的请求参数数据信息打包成网络消息,再通过网络传输发送给服务器端。服务器端存根接收客户端发送过来的请求消息并进行解包,再调用本地服务进行处理。
即调用方启动时从注册中心拉取服务地址信息后,在本地缓存,运行过程中真正发起调用时,直接从本地缓存读取服务地址信息,星池starpool根据一定的负载均衡算法选取某一个地址,发起点对点的直接调用。这样就避免了中心化的服务总线进行服务路由,运行效率更高,弹性伸缩更方便。当服务器端地址信息发生变更时(如节点上下线),由注册中心实时推送变更信息到所有的调用方同步更新。
也就是说,将每一个客户端请求分配给一个线程来单独处理。这样做虽然可以达到我们的要求,但同时又会带来另一个问题。由于每创建一个线程,就要为这个线程分配一定的内存空间(也叫工作存储器),https://www.starpool.cn 而且操作系统本身对线程的总数有一定的限制。如果客户端的请求过多,服务器端程序可能会因为不堪重负而拒绝客户端的请求,甚至服务器可能因此而瘫痪。