消息中间件之RocketMQ

9 篇文章 0 订阅
4 篇文章 0 订阅

https://www.cnblogs.com/liuruilongdn/p/8117997.html

1.RocketMQ的三种方式发送消息:可靠的同步,可靠的异步和单向传输:

https://www.cnblogs.com/yangming5423/p/9960023.html

(1)同步发送消息(可靠的同步传输,适用于重要的短信通知等)

  (2)异步传输通常用于响应时间敏感的业务场景。

  (3)以单向模式发送消息(单向传输用于需要中等可靠性的情况,例如日志收集。

2.初步了解消息失败重试机制

https://blog.csdn.net/qq_37469055/article/details/84922918

消息失败,无非涉及到2端:从生产者端发往MQ的失败;消费者端从MQ消费消息的失败

  (1)生产者设置重试:producer.setPretryTimesWhenSendFailed(3);

生产者端的消息失败:比如网络抖动导致生产者发送消息到MQ失败。

上面代码示例的处理手段是:如果该条消息在1S内没有发送成功,那么重试3次

(2)

消费端的失败重试

消费者端的失败,分为2种情况,一个是timeout,一个是exception

timeout,比如由于网络原因导致消息压根就没有从MQ到消费者上,在RocketMQ内部会不断的尝试发送这条消息,直至发送成功为止!(比如集群中一个broker失败,就尝试另一个broker)

exception,消息正常的到了消费者,结果消费者发生异常,处理失败了。这里涉及到一些问题,需要我们思考下,比如,消费者消费消息的状态有哪些定义?如果失败,MQ将采取什么策略进行重试?假设一次性批量PUSH了10条,其中某条数据消费异常,那么消息重试是10条呢,还是1条呢?而且在重试的过程中,需要保证不重复消费吗?

消息消费的状态,有2种,一个是成功(CONSUME_SUCCESS),一个是失败&稍后重试(RECONSUME_LATER)

注意了,对于消费消息而言,存在2种指定的状态(成功 OR 失败重试),如果一条消息在消费端处理没有返回这2个状态,那么相当于这条消息没有达到消费者,势必会再次发送给消费者!也即是消息的处理必须有返回值,否则就进行重发。
 

3.集群消费 AND 广播消费

RocketMQ的消费方式有2种,在默认情况下,就是集群消费,也就是消息的负载均衡消费。另一种消费模式,是广播消费。广播消费,类似于ActiveMQ中的发布订阅模式,消息会发给Consume Group中的每一个消费者进行消费

 

 

4.RocketMQ结合Spring配置实现

https://blog.csdn.net/caox_nazi/article/details/86610838

 

5.使用RocketMQ的小细节:

https://blog.csdn.net/l18848956739/article/details/83111963

消息过滤/订阅关系一致性/消息重试/消息幂等

 

6.RocketMQ不同类型的消费者:

https://blog.csdn.net/eo63y6pKI42Ilxr/article/details/80780513

根据使用者对读取操作的控制情况,分为两种类型。一个是DefaultMQPushConsumer,由系统控制读取操作,收到消息后自动调用传入的处理方法来处理;另一个是DefaultMQPullConsumer,读取操作中的大部分功能由使用者自主控制。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值