Rocket描述:
RocketMQ: producer:消息的发送者,写信人; consumer:消息的接收者;收信人; broker:存储和传递消息,邮局 nameserv:管理broker,相当于邮局的管理机构一样!(数据无状态,) topic:区分消息的种类,一个producer可以给一个或多个topic发送短信,一个consumer可以接收一个或多个topic的消息; Message queue:相当于消息的分区,用于并行发送和接收消息;
Rocket集群描述
集群描述: nameserv/producer/consumer:启动多个nameserv就是集群 1.nameservver是一个几乎无状态节点,可集群部署,节点直接无任何数据同步; 2.broker: 2.1:分为master和slave节点;一个master可以有多个salver,但是一个slave只能有一个master; 2.2:他们通过brokerName进行分组,brokerId=0代表master,brokerId=1代表salver; 2.3:每个broker和nameserver建立长连接,定时注册topic信息到所有的nameserver; 3.producer:producer和nameserver集群中的一个节点建立长连接(随机),定期从nameserver中获取topic路由信息,并向提供topic服务的master建立长连接,并定时向master节点发送心跳;producer完全无状态可集群部署; 4.consumer:consumer和namesever集群中的任一节点建立长连接,定期从namserver中获取topic路由信息,并向提过topic服务的maseter节点和slaver节点建立长连接,然后定时向master和slaver发送心跳,consumer可以master和slaver节点中都订阅消息,订阅规则由broker配置的规则决定;
三.集群搭建模式;
1.单master模式;不推荐使用,宕机玩完了!
2.多master模式:
3.多master多slaver(异步):单台master宕机后数据会有少量的丢失;
4.多master多slaver(同步):
四:集群的工作流程:
1.启动namaserver:nameserver启动后,监听broker,producer和consumer是否上线,相当于一个路由中心; 2.启动broker:broker和所有的nameserver建立长连接,定时发送心跳包,心跳包包含当前broker(ip+端口)以及topic储藏信息;当注册成功后,namserver就有了所有的broker和topic的映射关系; 3.创建topic:发送消息前需要先创建topic,需要指明当前topic要储藏在那个broker上 去; 4.producer生产消息:先和nameserver建立长连接,看当前的topic是在那些broker上面去,轮询从队列列表中选择一个队列,然后与所在队列的broker建立长连接从而向其发送信息; 5.consumer消费消息:跟其中的一台namsever建立长连接,获取当前的topic在那些Broker上,然后和broker建立连接,消费信息!
五:Rocket集群搭建: