14.集群解决方案
应用场景
通常情况来讲,当单节点接入量达到一定量级,服务能力急剧下降时,就需要考虑集群服务了。
假设单节点接入上限是10W,为了良好稳定的服务,会设一个阈值,比如:当接入量达到8W就需要扩节点,而不是真的等到接入10W。
集群部署就会遇到以下问题:
- 连接共享,终端与平台是通过三次握手建立的 TCP 连接,无法通过序列化持久化到数据库或 Redis 中,如何让每个节点互相感知到所建立的连接?
- 节点通信,下行命令时,如果命令由平台节点A下发给终端A。此时,终端A与平台节点B建立连接,平台节点A如何将命令消息通知到平台节点B?
实现方案
Netty 集群,无非围绕,节点通信、寻址、广播这几个要素,以下给出几种参考方案:
- Zookeeper、Nacos等注册中心,或自行实现具有服务发现及路由寻址方式
- Redis 消息订阅、发布方式
- MQ 消息广播方式
- Ignite 、Akka等 分布式数据共享方式
服务发现路由寻址方式,算是中规中矩的传统方案,在并发能力和时效性方面,不如其他方案。
一般中小型项目使用 Redis 订阅、发布方式即可,并发能力、实时性能够有效保证,缺点是无法保证消息不丢失,需要自行代码保证。
大规模项目考虑 MQ,MQ本身有不丢失消息策略极大降低消息丢失概率,并发能力和时效性也能有效保证,不失为一个较好的方案。
分布式数据共享方式&#
原文地址:https://blog.csdn.net/qq_37220802/article/details/140546636
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!