rocketMQ

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、事务消息
第一步:消息预发送
第二步:执行本地事务
第三步:消息发送成功后提交事务,失败回滚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值