EasyNetQ 使用笔记
关于SubscriptionId
| SubscriptionId | 消息类型 | 消费方式 |
|---|---|---|
| 相同 | 不同 | 视为不同消费者,每个SubscriptionId均会收到该消息类型所属队列的全部对应类型的消息 |
| 相同 | 相同 | 视为同一消费者,每个SubscriptionId会收到部分消息,且各订阅者不重复接收消息 |
| 不同 | 相同 | 视为不同消费者,每个SubscriptionId均会收到该消息类型所属队列的全部对应类型的消息 |
关于AutoSubscriber
IConsumeAsync<MessageData>,IConsume<MessageData>
若两个接口拥有同一个实现类,最终生效的消费方法只有一个,具体执行哪个实现方法,要看Subscribe 和 SubscribeAsync 的执行顺序,以先后顺序确定执行同步方法还是异步方法若项目中存在多个方法订阅了同一个消息类型
需要主要,同一个消费类型是依据消费者所属的队列名称来自行建立队列的,如果两个消费者同时订阅一个消费类型,该交换机下会存在两个队列,使用一样的路由规则,当消息入栈以后会生成一样的副本存放于这两个队列中,等同于广播式消费,同一条消息将会分发两次到
若队列名称是一样的,则相当于同一个队列拥有两个消费者,此时每个消息均只会分发一次到具体消费者