
rocketMQ
文章平均质量分 54
qq_16570607
一步一个脚印,在成为优秀程序员的路上。
展开
-
MQ延迟机制
延迟机制延迟队列延迟队列——消息进入到队列之后,延迟指定的时间才能被消费者消费AMQP协议和RabbitMQ队列本身是不支持延迟队列功能的,但是可以通过TTL(Time To Live)特性模拟延迟队列的功能TTL就是消息的存活时间。RabbitMQ可以分别对队列和消息设置存活时间在创建队列的时候可以设置队列的存活时间,当消息进入到队列并且在存活时间内没有消费者消费,则此消息就会从当前队列被移除;创建消息队列没有设置TTL,但是消息设置了TTL,那么当消息的存活时间结束,也会被移除;一般原创 2022-03-03 13:15:57 · 1013 阅读 · 0 评论 -
面试被问如何保证 RocketMQ 不丢失消息
前言分析那几步会丢失,然后给出大致解决思路。生产阶段生产者(Producer) 通过网络发送消息给 Broker,当 Broker 收到之后,将会返回确认响应信息给 Producer。所以生产者只要接收到返回的确认响应,就代表消息在生产阶段未丢失。若网络问题导致发送失败。针对这种情况,我们可以设置合理的重试次数,当出现网络问题,可以自动重试。设置方式如下:// 同步发送消息重试次数,默认为 2mqProducer.setRetryTimesWhenSendFailed(3);// 异步发送原创 2021-07-09 17:01:43 · 113 阅读 · 0 评论 -
rocketMQ如何避免消息重复消费
前言在互联网应用中,尤其在网络不稳定的情况下,消息队列 RocketMQ 的消息有可能会出现重复,造成重复消费。这个重复简单可以概括为以下情况:produce发送到Broker时消息重复当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者producer宕机,导致服务端Broker 对 producer应答失败。 如果此时生产者意识到消息发送失败并尝试再次发送消息,消费者后续会收到两条内容相同并且 Message ID 也相同的消息。Broker投递消息到Consumer时消原创 2021-07-09 16:51:03 · 5784 阅读 · 0 评论 -
RocketMQ顺序消息的实现实例
消费状态package org.apache.rocketmq.client.consumer.listener;public enum ConsumeOrderlyStatus { /** * Success consumption */ SUCCESS, /** * Suspend current queue a moment * 不能跳过消息,等待一下 */ SUSPEND_CURRENT_QUEUE_A_MO原创 2021-07-09 14:41:27 · 523 阅读 · 0 评论