RabbitMQ中的消息确认ACK机制
我們將消息持久化后,假如消費端出現異常,rabbitmq服務器會將消息緩存到內存,當生產者發送一直發送消息而消費者都沒有正常消費時消息就會將這些消息全部保存在內存,當我們的消息過多時,就可能導致rabbitmq服務器內存泄漏,
解決辦法:1.開啟ack確認機制,2.消費端設置重試機制(默認是三次)
開啟之后生產者客戶端沒有收到消息ack反饋就會認為該消息沒有被消費,就會保存到內存,但是設置重試機制后,消費端消費了設置的重試次數之后,假如還沒有收到ack反饋,就會將緩存在內存中的消息移除,這樣就可以防止內存溢出
消費端具體配置代碼:
spring.application.name=springcloud-mq
spring.rabbitmq.host=192.168.70.131
spring.rabbitmq.port=5672
spring.rabbitmq.username=oldlu
spring.rabbitmq.password=123456
#設置交換器的名稱
mq.config.exchange=log.direct
#info隊列名稱
mq.config.queue.info=log.info
#info路由鍵
mq.config.queue.info.routing.key=log.info.routing.key
#error隊列名稱
mq.config.queue.error=log.error
#error路由鍵
mq.config.queue.error.routing.key=log.error.routing.key
#開啟重試
spring.rabbitmq.listener.retry.enabled=true
#重試次數,默認為3次
spring.rabbitmq.listener.retry.max-attempts=5
來源:https://blog.csdn.net/liyu121/article/details/99492479
總結
以上是生活随笔為你收集整理的RabbitMQ中的消息确认ACK机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股指期货的涨跌变化代表着对股票市场未来走
- 下一篇: 寒食节是几月几日要干什么(寒食节是几月几