欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

rocketMQ

时间:2023-05-04

1、rocketMQ作用
削峰填谷、系统解耦、提升性能、蓄流压测

2、集群部署
Name Server:
是一个无状态节点,可集群部署,节点 之前无任何交互通信,各 NameServer 都有完整的路由信息
Broker:
分为Master和Slave,每个Broker与Name Server集群中的所有节点建立长连接,定时(每隔30s)发送心跳包(包含、IP、port、Topic信息)到所有Nane Server。Name Server定时(每隔10s)扫描所有存活broker的链接,如果Name Server超过120s没收到心跳,则断开与Broker的连接
Producer:
Producer与Name Server集群的其中一个节点(随机选择)建立长连接,定期从Name Server取Topic路由信息,并向提供Topic服务的Master建立长连接,且定时向Master发送心跳,Producer完全无状态。
Producer每隔30s从Name Server获取所有的Topic的最新情况,如果broker不可用,Producer最多30s就能感知到,在此期间内发往broker的所有消息都会失败。
Producer每隔30s向所有关联的broker发送心跳,Broker每隔10s扫描所有存活的连接,如果broker120s没收到心跳,则关闭与Producer的连接
Consumer:
Consumer与Name Server集群中的一个节点(随机选择)建立长连接,定期从Name server取Topic路由信息,并向提供Topic服务的Master、Slave建立长连接,定时向Master、Slave发送心跳。
Consumer既可以订阅Master消息,也可以订阅Slave消息,订阅规则由broker配置来定。
Consumer每隔30s从Name Server获取所有的Topic的最新情况,如果broker不可用,Consumer最多30s就能感知到。
Consumer每隔30s向所有关联的broker发送心跳,Broker每隔10s扫描所有存活的连接,如果broker120s没收到心跳,则关闭与Consumer的连接,并向Consumer Group的所有Consumer发出通知,Group内的Consumer重新分配队列,然后继续消费。
当Consumer得知master宕机后,转向slave消费,slave不能保证数据全部同步到,因此会有少量的数据丢失,一旦master恢复后,未同步到的消息会被最终消费掉

3、顺序消费
可以通过轮询所有队列的方式确定消息发送到哪一个队列(负载均衡策略)

4、消息重复
消费端处理消息的业务逻辑要保持幂等性;
保证每条数据唯一编号,已经消费成功的消息可以记录起来;

5、事务消息
第一步:消息预发送
第二步:执行本地事务
第三步:消息发送成功后提交事务,失败回滚

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。