1、保障消息发送成功
使用事务的手段,性能低【了解】
使用异步的confirm确认机制,确认消息到达exchange中
消息从producer到exchange则会返回一个confirmCallback
<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
port="${rabbitmq.port}"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
virtual-host="${rabbitmq.virtual-host}"
publisher-confirms="true"
publisher-returns="true"
/>
**yml**
spring:
rabbitmq:
host: 172.16.98.133 #主机ip
port: 5672 #端口
username: guest
password: guest
virtual-host: /
publisher-confirms: true
使用异步的return机制确认消息存放到queue中
消息从exchange --> 投递失败则会返回一个returnCallback
<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.host}"
port="${rabbitmq.port}"
username="${rabbitmq.username}"
password="${rabbitmq.password}"
virtual-host="${rabbitmq.virtual-host}"
publisher-confirms="true"
/>
**yml**
spring:
rabbitmq:
host: 172.16.98.133 #主机ip
port: 5672 #端口
username: guest
password: guest
virtual-host: /
publisher-confirms: true
publisher-returns: true
2、保障消息存储成功
要设置队列、交换机、消息的持久化
搭建broker的集群,备份存储队列、交换机、消息的信息
监听死信消息(死信:队列满,过期,拒收
3、保证消费者接收消息成功
使用手动确认消息的方式