长连接介绍
说长连接,与之对应的是短连接,关于这两个的介绍网上比较多,这里只用一个表格来总结下他们的工作流程、优缺点、适用场景等:
长连接负载均衡
长连接为什么需要负载均衡
长连接单机的连接数是存在上限的。
存在上限的原因,可能有同学认为是单机的端口数限制,也就是经常听到的问题「一台服务器最多能支撑多少个 TCP 连接?」
有人回答「65535」,其实不然,如果硬件限制不考虑,单机能撑200多万亿个 TCP 连接,但这太理想,现实是撑个百万连接还是可以的。
从经验来看,CPU 和 内存是限制连接数的主要原因。
内存不必多说,每个连接的保持都要占用一点内存,一条空连接,也要占用几 KB 的内存,如果再塞点数据,几百 KB 到几 MB 也是常有的事,按一条连接 1MB 算,一台 128GB 内存的物理机能撑十几万的连接。
其次是 CPU,我们上面说了长连接的场景一般是单个客户端操作频繁,这就会导致每增加一条连接,CPU 消耗就增加一些,一般单机能撑十万的连接,已经算是可以了。
基于单机性能和高可用容灾的考虑,生产环境长连接服务通常会部署多个节点,为此,我们需要考虑长连接服务的负载均衡问题。
长连接负载均衡粒度
与短连接每次请求都做负载均衡策略不同,长连接不光有请求粒度的负载均衡&#x