生产者权衡
1.什么叫做生产者权衡
生产者在向消息队列投递消息可能会产生各种问题这些问题有很多解决方案,对于生产者来说需要权衡这些方案,权衡这些方案所要关注的方面只有两方面:性能,可靠性。
2.对于生产者来说有哪些方案
- 失败通知——常用
- 发送方确认——常用
- 事务——不常用
3.发送方确认
为什么需要发送方确认
消息是不能百分百保证投递到消息队列上(Broker)的,发送方确认能够保证消息是否成功投递到Broker上这个信息被生产者感知到。
发送方确认的三种模式
- 单条消息阻塞确认
- 多条消息批量阻塞确认
- 异步监听确认
具体使用请参考Java整合RabbitMQ那篇博客
4.失败通知
为什么需要发送方通知
生产者在发送消息后,指定交换机会获取到这个消息,交换机会根据一定规则路由这个消息如果这个消息不可路由比如没有根据路由键找到相应队列,那么这个时候将会有一个失败通知给生产者。
如何启动失败通知功能
发送消息时设置mandatory=true即可,具体参照Java整合RabbitMQ