我正在构建一个系统,其中两个不同的实体需要处理来自同一源的消息(以不同的方式 - 例如一个将记录所有消息,而另一个实体可能想要聚合数据)。
理想情况下,每个实体在性能和弹性方面都是完全可扩展的,因此我们有多个发布者、多个日志订阅者和多个聚合订阅者,但每个发布者生成的每条消息仍然只由一个日志订阅者和一个聚合订阅者处理。
使用 AMQP,我们可以通过将消息发布到扇出交换器来实现这一点,该交换器将消息分发到两个队列,每个队列都有许多订阅者。我知道在 NATS 中可以实现相同的行为,只需让所有订阅者根据其角色使用两个不同的“队列组名称”来监听相同的“主题”。
在这种情况下,发给主题的消息将被从每个队列组传递给一个订阅者,即每条消息将被准确地传递 n 次,n 是不同队列组的数量而不是订阅者的数量。这个对吗?