5 个回答
![自愈 自愈](https://www.80wz.com/zb_users/avatar/0.png)
消费者的话需要启动 ack 机制,也就是消息如果被正确处理,则手动进行 ack,如果没有被正确处理,则不能进行 ack 操作。
发布于:5个月前 (03-07) IP属地:未知
![去 去](https://www.80wz.com/zb_users/avatar/0.png)
从运维的角度来说,rabbitmq 需要配置为镜像的模式,避免服务器单点故障造成消息丢失
发布于:5个月前 (03-07) IP属地:未知
![怕她脏还是爱她葬 怕她脏还是爱她葬](https://www.80wz.com/zb_users/avatar/0.png)
在生产者端配置消息持久化,需要设置:
Exchange 设置持久化
Queue 设置持久化
Message持久化发送:发送消息设置发送模式deliveryMode=2,代表持久化消息
发布于:5个月前 (03-07) IP属地:未知
![我是蓝天 我是蓝天](https://www.80wz.com/zb_users/avatar/0.png)
生产者端还可以使用 confirm 机制,例如:
//开启confirm
channel.confirm();
//发送成功回调
public void ack(String messageId){
}
// 发送失败回调
public void nack(String messageId){
//重发该消息
}
发布于:5个月前 (03-07) IP属地:未知
![望北海 望北海](https://www.80wz.com/zb_users/avatar/0.png)
生产者端可以开启提交事务,例如:
// 开启事务
channel.txSelect();
//发送
doSomething()
// 提交事务
channel.txCommit();
发布于:5个月前 (03-07) IP属地:未知
我来回答
您需要 登录 后回答此问题!