# RabbitMQ
## 1 如何保障消息可靠生产(消息100%投递成功)
**方案:消息落库,对消息状态进行打标**
**步骤:**
1. 把消息发送MQ一份,同时存储到数据库(Redis)一份。开启消息发送确定机制,然后进行消息的状态控制,发送成功1,发送失败0。
2. 必须结合应答ACK(确认字符)来完成。对于那些如果没有发送成功的消息,可以采用定时器进行轮询发送。
**示例**
[application.yaml](spring-boot-rabbitmq/producer/src/main/resources/application.yml)
[定义生产者确认回调对象](spring-boot-rabbitmq/producer/src/main/java/com/example/config/ProducerAckConfirmCallback.java)
## 2 消息可靠消费
**步骤:**
1. 消费者开始手动ack消息确定
2. 尝试消息重投
3. 对重投还是消费失败的消息拒绝确认
4. 把拒绝确认的消息扔到死信队列中,并记录到数据库,再做好消息预警
**示例**
[application.yaml](spring-boot-rabbitmq/consumer/src/main/resources/application.yml)
需要开启下面的配置
```properties
spring.rabbitmq.listener.acknowledge-mode=manual #消费者开启手动ack消息确认
spring.rabbitmq.listener.default-requeue-rejected=false #设置为false,会重发消息到死信队列
```
**Consumer示例**
消费端手动确认[AckConsumer](spring-boot-rabbitmq/consumer/src/main/java/com/example/ack/AckConsumer.java)
死信队列[DeadLetterConsumer](spring-boot-rabbitmq/consumer/src/main/java/com/example/ack/DeadLetterConsumer.java)
## 3:待补充
1. 延时消息
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
spring-boot-mq-rabbitmq.zip (60个子文件)
spring-boot-mq-rabbitmq
pom.xml 692B
spring-boot-rabbitmq-simple
consumer-simple
pom.xml 2KB
target
classes
application.yml 268B
com
example
consumer
Consumer.class 1KB
RabbitMQSimpleConsumerApplication.class 802B
generated-sources
annotations
src
main
resources
application.yml 268B
java
com
example
consumer
Consumer.java 763B
RabbitMQSimpleConsumerApplication.java 416B
pom.xml 748B
producer-simple
pom.xml 2KB
target
test-classes
com
example
ProducerSimpleTest.class 1KB
generated-test-sources
test-annotations
classes
application.yml 268B
com
example
RabbitMQSimpleProducerApplication.class 802B
generated-sources
annotations
src
test
java
com
example
ProducerSimpleTest.java 1020B
main
resources
application.yml 268B
java
com
example
RabbitMQSimpleProducerApplication.java 418B
spring-boot-rabbitmq
pom.xml 741B
consumer
pom.xml 2KB
target
classes
application.yml 3KB
com
example
ack
DeadLetterConsumer.class 2KB
AckConsumer.class 3KB
work
Consumer1.class 1KB
Consumer2.class 1KB
direct
AllConsumer.class 1KB
ErrorConsumer.class 1KB
InfoConsumer.class 1KB
RabbitMQConsumerApplication.class 784B
fanout
WeixinConsumer.class 1KB
SmsConsumer.class 1KB
topic
FullLogConsumer.class 1KB
ErrorLogConsumer.class 1KB
InfoLogConsumer.class 1KB
generated-sources
annotations
src
main
resources
application.yml 3KB
java
com
example
ack
DeadLetterConsumer.java 2KB
AckConsumer.java 4KB
work
Consumer1.java 923B
Consumer2.java 923B
RabbitMQConsumerApplication.java 406B
direct
AllConsumer.java 1KB
ErrorConsumer.java 1KB
InfoConsumer.java 1KB
fanout
SmsConsumer.java 1KB
WeixinConsumer.java 1KB
topic
FullLogConsumer.java 1KB
ErrorLogConsumer.java 1KB
InfoLogConsumer.java 1KB
producer
pom.xml 2KB
target
test-classes
com
example
ProducerTest.class 3KB
generated-test-sources
test-annotations
classes
application.yml 415B
com
example
config
ProducerAckConfirmCallback.class 2KB
RabbitMQProducerApplication.class 784B
service
RabbitMQService.class 588B
impl
RabbitMQServiceImpl.class 2KB
generated-sources
annotations
src
test
java
com
example
ProducerTest.java 4KB
main
resources
application.yml 415B
java
com
example
config
ProducerAckConfirmCallback.java 2KB
RabbitMQProducerApplication.java 404B
service
RabbitMQService.java 2KB
impl
RabbitMQServiceImpl.java 1KB
README.md 2KB
共 60 条
- 1
浅若夏沫·
- 粉丝: 1
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python的高性能爬虫程序,使用了多线程+缓存+xpath实现的,这里以彼-岸图库为例,实现,仅用于学习交流
- 中分辨率成像光谱仪(MODIS)烧毁面积产品信息MODIS-C6-BA-User-Guide-1.2.pdf
- Screenshot_20240427_172613_com.huawei.browser.jpg
- 关于学习Python的相关资源网站链接及相关介绍.docx
- (HAL库)基于STM32F103C8T6的温控PID系统[Dht11、ESP8266、无线透传、L298N……]
- VoLTE高丢包优化指导书.xlsx
- Rust资源文件.zip
- 前后端分离实践:使用 React 和 Express 搭建完整登录注册流程
- gradle-publish-to-MavenLocal.zip
- 10份网络优化创新案例.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0