当前位置:   article > 正文

RocketMQ案例实战

RocketMQ案例实战

生产者

发送消息的3种方式

1、同步发送消息-可靠的有结果

假如失败了会重投

2、异步发送消息-可靠的有结果

假如失败了会重投

3、单向发送消息-不可靠不关心发送结果

没有任何保证,这种方式主要用在不特别关心发送结果的场景,例如日志发送。

发送种类

1.顺序消息发送

消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。

顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;如果多个queue参与,则为分区有序,即相对每个queue,消息都是有序的。

下 面用订单进行分区有序的示例。一个订单的顺序流程是:创建、付款、推送、完成。订单号相同的消息会被先后发送到同一个队列中,消费时,同一个OrderId获取到的肯定是同一个队列。

顺序消息缺陷

  1. 消费顺序消息的并行度依赖于队列的数量 ;
  2. 队列热点问题,个别队列由于哈希不均导致消息过多,消费速度跟不上,产生消息堆积问题;
  3. 遇到消息失败的消息,无法跳过,当前队列消费暂停;

2.延时消息发送

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/493141
推荐阅读
  

闽ICP备14008679号