搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
羊村懒王
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
flink教程(1)--word count_flink worldcount
2
python代码运行时报错:Python : TypeError: ‘int‘ object is not iterable_typeerror: 'int' object is not iterable
3
【前端系列】pnpm 与 npm:现代 JavaScript 包管理工具的比较_pnpm 与npm
4
CTF靶场之Evilzone:取证篇_evilctf
5
数学建模比赛中,chatgpt、文心一言如何提问更有效?_数学建模比赛用chatgpt
6
GIt常用指令、概念及原理分析,图解rebase、merge指令区别,stash、reset贮藏重置等指令详解,每一条指令都有详细说明,值得收藏!_git rm stash
7
聆思CSK6大模型开发板英语评测类开源SDK详解
8
CHATGLM3应用指南(三)——模型微调_chatglm3微调如何自制数据集
9
【OD统一考试( C&D 卷)】根据 IP 查找城市,JAVA 解答_根据ip找城市 od
10
服务端安全之XML外部实体注入(XXE)_xxe参数实体
当前位置:
article
> 正文
RabbitMQ 怎么保证可靠性、幂等性、消费顺序?_什么手动ack不能保证幂等行
作者:羊村懒王 | 2024-06-10 01:11:42
赞
踩
什么手动ack不能保证幂等行
生产者弄丢消息时的解决方法#
方法一:生产者在发送数据之前开启RabbitMQ的事务(采用该种方法由于事务机制,会导致吞吐量下降,太消耗性能。)
方法二:开启confirm模式(使用springboot时在application.yml配置文件中做如下配置,实现confirm回调接口,生产者发送消息时设置confirm回调)
小结: 事务机制和 confirm机制最大的不同在于,事务机制是同步的,你提交一个事务之后会阻塞在那儿,但是 confirm机制是异步的,你发送个消息之后就可以发送下一个消息,RabbitMQ 接收了之后会异步回调confirm接口通知你这个消息接收到了。一般在生产者这块避免数据丢失,建议使用用 confirm 机制。
MQ自身弄丢消息时的解决方法#
第一步: 创建queue时设置为持久化队列,这样可以保证RabbitMQ持久化queue的元数据,此时还是不会持久化queue里的数据。
第二步: 发送消息时将消息的deliveryMode设置为持久化,此时queue中的消息才会持久化到磁盘。
总结:同时设置queue和message持久化以后,RabbitMQ 挂了再次重启,也会从磁盘上重启恢复 queue,恢复这个 queue 里的数据,保证数据不会丢失。
但是:但是就算开启持久化机制,也有可能出现上面说的的消息落盘时服务挂掉的情况。这时可以考虑结合生产者的confirm机制来处理,持久化机制开启后消息只有成功落盘时才会通过confirm回调通知生产者,所以可以考虑生产者在生产消息时维护一个正在等待消息发送确认的队列,如果超过一定时间还没从confirm中收到对应消息的
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/羊村懒王/article/detail/696534
推荐阅读
article
centos7
下
RabbitMQ
的安装_
centos7
docker
rabbitmq
安装...
RabbitMQ
官网:https://www.
rabbitmq
.com/
docker
安装
RabbitMQ
官网
docker
...
赞
踩
article
基于
RabbitMQ
实现
Eureka
服务
平滑灰度发布_
rabbitmq
eureka
...
Slf4j@Override// 踢掉要下线的
服务
if (!} } }//... 根据需要做负载负载均衡规则} else...
赞
踩
article
【
Spring
Cloud
】
RabbitMQ
消息队列服务入门_
spring
cloud
rabii...
准备工作更改虚拟网络更改子网费IP安装虚拟机打开VMware虚拟机,并点击下面文件,将 centos-8 添加到VMwa...
赞
踩
article
Spring
Boot
之集成
RabbitMQ
、
ActiveMQ
_
activemq
rabbitmq
...
RabbitMQ
之与
Spring
Boot
整合(四)
RabbitMQ
1.添加依赖2.添加application.yml配置...
赞
踩
article
SpringBoot整合
消息中间件
(
ActiveMQ
,
RabbitMQ
,
RocketMQ
,
Kafka
...
快速掌握spring整合
消息中间件
的知识_
springboot
消息中间件
springboot
消息中间件
...
赞
踩
article
SpringBoot
整合
ActiveMQ
、
RabbitMQ
(direct、
topic
模式)、Ro...
SpringBoot
整合
ActiveMQ
、
RabbitMQ
(direct、
topic
模式)、RocketMQ详解代码...
赞
踩
article
RabbitMQ
(七)【
SpringBoot
案例
】_
rabbitmq
java
springboot
...
使用注解方式实现绑定。_
rabbitmq
java
springboot
案例
rabbitmq
java
springb...
赞
踩
article
RabbitMQ
七种
队列
模式
应用
场景案例分析_
php
rabbitmq
工作
队列
实际
应用
...
简单
模式
(Hello World)如何设计 QQ、微信、微博、Github 等第三方账号登陆?(附表设计)做最简单的事情...
赞
踩
article
RabbitMQ
(六
)
【
入门
案例
】_
rabbitmq
入门
案例
...
上一篇文章《Docker安装&AMQP协议》【注】实现方式是:代码 + web图形界面实现步骤1
)
创建一个maven工程...
赞
踩
article
消息
中间件
——
RabbitMQ
,2024年最新
java
实战
项目
大全
pdf
_
中间件
项目
实战
...
System.err.println(“默认方法, 消息内容:” + new String(messageBody));...
赞
踩
article
RabbitMQ
- 基于
SpringAMQP
带你
实现
五种消息队列模型_
spring
消息队列_简...
到想自学提升又不知道该从何学起的朋友。**[外链图片转存中…(img-fRqZiXd9-1712531510735)][...
赞
踩
article
RabbitMQ - 基于
SpringAMQP
带你实现五种消息队列模型_
spring
消息队列_o...
*遇到的问题:**当消息进入 queue 时,消费者1 和 消费者2 都会先做一个操作叫做“消息预取”,也就是先取消息,...
赞
踩
article
RabbitMQ
中
的
VirtualHost
该如何理解_
rabbitmq
virtual
-hos...
光给面试题不给答案不是我
的
风格。这里面
的
面试题也只是凤毛麟角,还有答案
的
话会极大
的
增加文章
的
篇幅,减少文章
的
可读性。_r...
赞
踩
article
RabbitMq
虚拟主机
virtual
-
host
,
Springboot
中使用 RabbitM...
文章目录
RabbitMq
虚拟主机
virtual
-
host
,
Springboot
中使用
RabbitMq
虚拟主机
...
赞
踩
article
RabbitMQ
创建
virtual
host
_
rabbtmq
新建
virtual
host
...
1、先创建
virtual
host
2、创建Exchanges3、创建Queue4、找到刚刚创建 Exchanges ,点...
赞
踩
article
rabbitmq
开启
virtual
host
_
rabbitmq
virtual
-
host
...
由于我的
rabbitmq
架设在测试服务期。导致我本地测试的mq消息,经常被服务器消费掉。所以通过添加v-
host
,可以创...
赞
踩
article
RabbitMQ
安装
后
15672
无法访问
的总结_
安装
rabbitmq
后
15672
访问不到...
RabbitMQ
安装
后
15672
无法访问
的解决办法个人说明以下就是我对这个问题的总结了!导出与导入导出导入个人说明第一...
赞
踩
article
Interview
preparation--
RabbitMQ
...
RabbitMQ
没有直接支持延迟队列,而是通过死信队列实现,在死信队列中,可以为普通交换机绑定多个消息队列,假设绑定过期...
赞
踩
article
linux
安装
RabbitMQ
-Server_
rabbitmq
linux
rabbitmq
-ser...
rpm -Uvh http://www.
rabbitmq
.com/releases/
rabbitmq
-
server
/v3...
赞
踩
article
RabbitMQ
学习笔记:
节点
名称详解、
rabbitmq
-
server
、及
rabbitmq
-env....
rabbitmq
-
server
rabbitmq
-
server
启动一个
RabbitMQ
节点
1.
rabbitmq
-serv...
赞
踩
相关标签
docker
centos
rabbitmq
yum
erlang
eureka
分布式
spring cloud
1024程序员节
spring boot
java
activemq
java-rabbitmq
java-activemq
java-rocketmq
springboot
rocketmq
topic