持久化
1 发送到持久化队列
2 发送到持久化交换器
3 publisher的投递模式delivery mode配置为2(持久)
优点:持久化会把消息写到日志文件中,如果rabbitmq出现重启,会从日志中恢复未处理的消息;
缺点:持久化会导致性能10倍以上的下降
事务性
rabbitmq采用回调确认方式实现事务功能
1 把信道设置为publisher confirm 模式
2 在confirm信道上发布的消息会分配一个唯一的ID(可以保存起来,用于确认对比)
3 当消息被正确接收、持久化后,mq会异步发送一个包含ID的确认消息
4 当mq内部错误造成消息丢失,会发送一个包含ID的nack消息