摘要: 消息队列 RocketMQ 消费者在接收到消息以后,有必要根据业务上的唯一 Key 对消息做幂等处理的必要性。 消费幂等的必要性 在互联网应用中,尤其在网络不稳定的情况下,消息队列 RocketMQ 的消息有可能会出现重复,这个重复简单可以概括为以下情况: 发送时消息重复 当一条消息已被成功发送到服 阅读全文
posted @ 2021-04-02 23:53 Anlai_Wei 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 当一条消息初次消费失败,消息队列 RocketMQ 会自动进行消息重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列 RocketMQ 不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中 在消息队列 RocketMQ 中,这种正常情况下无法 阅读全文
posted @ 2021-04-02 23:44 Anlai_Wei 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 顺序消息的重试 对于顺序消息,当消费者消费消息失败后,消息队列 RocketMQ 会自动不断进行消息重试(每次间隔时间为 1 秒),这时,应用会出现消息消费被阻塞的情况。因此,在使用顺序消息时,务必保证应用能够及时监控并处理消费失败的情况,避免阻塞现象的发生。 无序消息的重试 对于无序消息(普通、定 阅读全文
posted @ 2021-04-02 23:39 Anlai_Wei 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Producer负载均衡 Producer端,每个实例在发消息的时候,默认会轮询所有的message queue发送,以达到让消息平均落在不同的queue上。而由于queue可以散落在不同的broker,所以消息就发送到不同的broker下,如下图: 图中箭头线条上的标号代表顺序,发布方会把第一条消 阅读全文
posted @ 2021-04-02 23:17 Anlai_Wei 阅读(50) 评论(0) 推荐(0) 编辑
摘要: RocketMQ分布式集群是通过Master和Slave的配合达到高可用性的。 Master和Slave的区别:在Broker的配置文件中,参数 brokerId的值为0表明这个Broker是Master,大于0表明这个Broker是 Slave,同时brokerRole参数也会说明这个Broker 阅读全文
posted @ 2021-04-02 22:59 Anlai_Wei 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 分布式队列因为有高可靠性的要求,所以数据要进行持久化存储 持久化存储 消息生成者发送消息 MQ收到消息,将消息进行持久化,在存储中新增一条记录 返回ACK给生产者 MQ push 消息给对应的消费者,然后等待消费者返回ACK 如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储 阅读全文
posted @ 2021-04-02 22:23 Anlai_Wei 阅读(146) 评论(0) 推荐(0) 编辑