教你设计一套高可用高并发、海量存储以及可伸缩的消息中间件生产架构(RocketMQ 必备)
到目前为止,我们已经基本掌握了MQ的相关核心工作原理,同时一起设计了消息路由中心 ( 消息中间件路由中心你会设计吗,不会就来学学 )和 Broker 主从架构( 消息队列Broker主从架构详细设计方案,这一篇就搞定主从架构 ),现在如果让你基于它的基本原理去设计一套 MQ 的生产部署架构出来,你准备怎么去思考呢? 在这套架构中,你需要着重考虑的就是高可用问题,也就是说要保证整个系统在运行过程中,其中的任何一个环节宕机都不能影响整个系统。今天我们就来打卡如何设计一套高可用的消息中间件生产部署架构。 NameServer 集群化,保证路由高可用 首先,我们就是需要将NameServer 集群化部署,这里建议可以部署三台机器,这样可以充分的保证我们消息路由中心的可用性,哪怕其中的两台挂了,也还有一台 NameServer 在运行,这样就能保证我们 MQ 系统的稳定性。 前面我们也知道我们的NameServer 设计采用的是Peer-to-Peer 模式,即可以支持集群化部署的,每台机器是独立运行的,他们彼此直接不直接通信。 每台NameServer 机器都拥有所有的路由信息,包括所有的 Broker 节点信息、数据信息等 ,这样只要有一台 NameServer 存活就不会影响系统的稳定性。 所以,消息路由中心 NameServer 的集群化是我们整个MQ生产部署的第一步。