【rocketMq-1】基础入门

本文深入讲解RocketMQ的部署架构及特性,包括角色介绍、消息发送与接收方式、集群部署细节等,并提供了Java示例代码及Spring整合教程。

一:RocketMQ 部署架构

1、RocketMQ的角色介绍

Producer :消息的发送者
ProducerGroup:同一类producer的集合
Consumer :消息接收者;
PushConsumer : broker主动推送消息给消费端
PullConsumer :消费端主动拉取消息
ConsumerGroup:同一类consumer的集合
Broker :暂存和传输消息;  一个broker中可以存储多个topic( 一个topic也可以分片在多个broker上 )
NameServer :管理 Broker
Topic :区分消息的种类;一个发送者可以发送消息给一个或者多个 Topic ;一个消息的接收者可以订阅一个或者多个Topic 消息
Message Queue :相当于是 Topic 的分区,一个topic下可以挂载多个queue,消息真实的物理存储结构;
广播消息: 所有消费者都会消费该消息,哪怕是同一个 ConsumerGroup 的消费者
集群消费:一条消息只会被同一个 ConsumerGroup下的一个消费者消费,如果是多条消息,会均衡消费
集群部署如上图:
NameServer:无状态节点,可集群部署,节点间无信息同步。
Broker

mater:slave一对多,通过指定相同的BrokerName建立关系。

BrokerId为0为master,非0为slave,slave中只有为1的那个可参与读负载。

每个broker与nameServer中所有节点建立长连接,定时注册topic信息上去。

Producer:  与nameServer中随机一个节点建立长连接,定期获取topic路由信息,并与提供topic服务的master建立长连接,定时发送心跳。   无状态,可集群部署。
consumer

同producer,另外也会与slave建立长连接和发送心跳。

可以从master或slave订阅消息,如果是master,则master会根据最大偏移量和拉取偏移量对比,(判断是否读取老消息,老消息已持久化,会产生IO),以及slave是否可读等,建议下一次从master还是slave拉取。

了解了物理集群后, 来看看逻辑上的关系

如上图示:

  1. 在broker集群中,每个broker是可以存储多个topic的,当然,每个topic也是可以分散到不同的broker上。
  2. 在一个broker的每个topic分片下,有多个
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值