@Bean public RabbitTemplate rabbitTemplate(CachingConnectionFactory factory) { //若使用confirm-callback ,必须要配置publisherConfirms 为true factory.setPublishe ...
转载 2021-04-08 08:12:00
971阅读
2评论
消息的可靠投递除了需要硬件,网络,消息中间件等的可靠保证外,还需要生产者,消费者来共同保证来完成。一条消息从生产者产生,到发送到交换机,并被投递到队列,并最终被消费者消费,这整个路径上,途径的每一个地方都要保证消息的可靠性。其实,官方文档Reliability Guide已经总结了消息系统安全的方方面面。网络方面可以使用心跳检测TCP连接:Detecting Dead TCP Connection
转载 2024-04-16 12:20:15
117阅读
一般的消息中间件(MQ)只能保证消息不丢,但是不能保证重复发送等问题。
原创 2021-07-12 17:04:50
738阅读
一、引言在现代分布式系统中,消息队列扮演着至关重要的角色,而 RabbitMQ 作为一款成熟的消息中间件,被广泛应用于各种场景,如任务异步处理、系统解耦和流量削峰等。然而,在高并发和复杂的业务场景下,消息的可靠性至关重要——如何确保消息不会丢失、不会重复,以及在系统故障或网络异常时消息依然能够被正确处理,是每个开发者和架构师必须面对的问题。RabbitMQ 作为一款功能强大的消息队列,提供了一系列
原创 精选 10月前
1552阅读
2点赞
项目开发中经常会使用消息队列来完成异步处理、应用解耦、流量控制等功能。虽然消息队列的出现解决了一些场景下的问题,但是同时也引出了一些问题,其中使用消息队列时如何保证消息的可靠性就是一个常见的问题。如果在项目中遇到需要保证消息一定被消费的场景时,如何保证消息不丢失,如何保证消息的可靠性? 最近在项目使
原创 2023-10-27 14:25:34
0阅读
作者:threedayman 恒生LIGHT云社区 接着上一讲 消息中间件之RabbitMQ初识,这笔我们来讲讲RabbitMQ中消息丢失的问题。已经怎样在核心业务中避免消息丢失。 血泪故事:商品购物流程中的发货环...
原创 2022-03-03 14:56:35
273阅读
本章目标 掌握生产者确认(Publisher Confirms)机制,确保消息到达Broker。 深入理解消费者确认(Consumer Acknowledgments)的最佳实践。 学习死信队列(Dead Letter Exchange, DLX)处理失败消息。 实现完整的消息可靠性保障体系。 一、 ...
转载 1月前
427阅读
1)TPS(事务数量/s)比较Kafka 最高RabbitMq次之,ActiveMq 最差2)吞吐量比较Kafka 具有最高的吞吐量,内部采用消息批处理机制,zore-copy 机制,数据的存储和获取是本地磁盘的批量操作,具有O(1)的复杂度,消息处理效率很高。RabbitMq 在吞吐量方面逊于Kafka,他们的出发点不一样,RabbitMq支持对消息的可靠传递,支持事务,不支持批量操作;基于存储
们知道在涉及网络IO操作的时候,可能要面临失败的问题,如在RabbitMQ中,消息的可靠性是个很大的问题,可能会发生消息丢失,还有RabbitMQ默认是存放在内存上面,如果不进行配置,并不会持久化保存到硬盘上面的,如果节点重启或者意外挂掉,消息就会丢失,所以就要对消息进行持久化处理。下面对RabbitMQ可能发生消息丢失的场景进行说明。一、生产者发送消息到MQ失败在生产者发送消息时,可能由于网络等
原创 2021-02-27 19:23:56
354阅读
消息中间件的可靠性是指对消息不丢失的保障程度;而消息中间件的可用是指无故障运行的时间百分比,通常用几个 9 来衡量。不存在绝对的可靠性只能尽量趋向完美。并且通常可靠性也意味着影响性能和付出更大的成本,因此实际应用时还要根据业务需求,对真正关键的信息来做可靠性保证,并要从生产者、消息队列、消费者三个
转载 2019-01-07 08:51:00
76阅读
2评论
CREATE TABLE `mq_message` ( `message_id` CHAR(32) NOT NULL, `content` TEXT, `to_exchange` VARCHAR(255) DEFAULT NULL,
原创 2021-09-08 10:20:37
199阅读
所思最近在公司开发遇到这样一个需求:如何实现定时下单的?并且可以随时中断、重启、删除这个任务,我当时脑子
原创 2024-01-20 21:35:46
108阅读
缘起在项目中使用RabbitMQ时,我们可能会遇到这样的问题:如一个订单系统当用户付款成功时我们往消息中间件添加一条记录期望消息消费者修改订单状态,但是最终实际订单状态并没有被修改成功。遇到这种问题我们排查的思路如下:1.消息是否已经成功发送到消息中间件2.消息是否有丢失的情况 消息是否已经被消费成功在生产环境下是不容许出现消息投递/消费错误的情况的,因为这可能会对企业产生巨大的损失,本...
原创 2021-08-26 15:19:14
491阅读
分布式 系统 中,我们广泛运用 消息中间件 进行系统间的 数据 交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们 自 家的产品 RocketMQ (阿里云消息队列(MQ)的内核) 也顺利开源那么,消息中间件性能究竟哪家强? 带着这个疑问,我们消息队列测试小组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。 Kafka是LinkedIn
Introduction有很多人问过我这么一类问题:RabbitMQ如何确保消息可靠?很多时候,笔者的回答都是:说来话长的事情何来长话短说。的确,要确保消息可靠不只是单单几句就能够叙述明白的,包括Kafka也是如此。可靠并不是一个绝对的概念,曾经有人也留言说过类似全部磁盘损毁也会导致消息丢失,笔者戏答:还有机房被炸了也会导致消息丢失。可靠性是一个相对的概念,在条件合理的范围内系统所能确保的多少个9
原创 2019-05-16 15:37:52
690阅读
欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。 Introduction 有很多人问过我这么一类问题:RabbitMQ如何确保消息可靠?很多时候,笔者的回答都是:说来话长的事情何来长话短说。的确,要确保消息可靠不只是单单几句就能够叙述明白的,包括Kafka也是如此。可靠并不是一个绝对的概念,曾经有人也留言说过
原创 2021-09-05 11:52:04
136阅读
1.RabbitMQ的消息可靠性投递讲解 什么是消息的可靠性投递 保证消息百分百发送到消息队列中去 详细流程 保证mq节点成功接收消息 消息发送端需要接收到mq服务端接收到消息的确认应答 完善的消息补偿机制,发送失败的消息可以再感知并二次处理 RabbitMQ消息投递路径 生产者-->交换机-->队 ...
转载 2021-08-26 17:55:00
551阅读
2评论
一、可靠性问题分析 消息的可靠性投递是使用消息中间件不可避免的问题,不管是使用哪种MQ都存在这种问题,接下来要说的就是在RabbitMQ中如何解决可靠性问题;在前面 在前面说过消息的传递过程中有三个对象参与分别是:生产者、RabbitMQ(broker)、消费者;接下来就是要围绕这三个对象来分析消息 ...
转载 2021-10-15 17:20:00
111阅读
2评论
缘起在项目中使用RabbitMQ时,我们可能会遇到这样的问题:如一个订单系统当用户付款成功时我们往消息中间件添加一条记录期望消息消费者修改订单状态,但是最终实际订单状态并没有被修改成功。遇到这种问题我们排查的思路如下:
原创 2022-02-15 14:01:51
230阅读
以上介绍了RabbitMQ保证消息可靠性的问题、产生原因、解决方案等。不足之处,欢迎指正。
原创 精选 2024-07-30 09:52:07
187阅读
  • 1
  • 2
  • 3
  • 4
  • 5