前言
在分布式高并发服务器中,client到server以及server中的多个节点之间的连接往往使用连接池来管理。简单来说就是将提前创建好的连接保存在池中,当有请求到来时,直接使用连接池中的连接对server端访问,省去了创建连接和销毁连接的开销(TCP建立连接时的三次握手和释放连接时的四次挥手),从而提高了性能。
目录
设计原则
- 连接池的扩缩容
- 空闲连接的超时与保活
- 池满的处理机制
连接池的扩缩容
通常连接池属性包含最大空闲连接数和最大活跃连接数。
最大空闲连接数:连接池一直保持的连接数,无论这些连接被使用与否都会被保持。如果客户端对连接池的使用量不大,便会造成服务端连接资源的浪费。
最大活跃连接数:连接池最多保持的连接数,如果客户端请求超过次数,便要根据池满的处理机制来处理没有得到连接的请求。
扩容:当请求到来时,如果连接池中没有空闲的连接,同时连接数也没有达到最大活跃连接数,便会按照特定的增长策略创建新的连接服务该请求,同时用完之后归还到池中,而不是关闭连接。
缩容:当连接池一段时间没有被使用,同时池中的连接数超过了最大空闲连接数,那么便会关闭

本文介绍了GRPC连接池的设计原则,包括连接池的扩缩容、空闲连接的超时与保活策略,以及池满时的处理机制。内容详细探讨了GRPC的特性,如多路复用和超时重连,并提供了GRPC调优的建议。此外,还阐述了GRPC连接池的实现细节,包括接口设计和连接复用,以及如何利用GRPC的Keepalive特性确保连接有效性。
最低0.47元/天 解锁文章
1927

被折叠的 条评论
为什么被折叠?



