RocketMQ集群及搭建

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集群搭建:

 



 

上一篇:silverlight .net后台控制aspx页面控件的显示与隐藏,动态给控件赋值,选定默认值的设定


下一篇:springboot启动过程