我正在构建一个系统,两个不同的实体需要处理来自同一个源的消息(以不同的方式 - 例如,一个会记录所有消息,而另一个实体可能需要聚合数据)。理想情况下,每个实体对于性能和弹性都是完全可扩展的,因此我们有多个发布者,多个日志订阅者和多个聚合订阅者,但每个发布的每个消息仍然由一个日志订阅者和一个聚合订阅者处理。NATS发布者可以将单个消息发送到多个队列吗?
通过AMQP,我们可以通过发布到扇出交换机来实现此目的,该交换机将消息分发到两个队列,其中每个队列拥有多个订阅者。我明白,通过简单地让所有订阅者在相同的“主题”上使用两个不同的“队列组名”基于他们的角色来监听,NATS可以实现相同的行为。
在这种情况下,到主题的消息将从每个队列组传送到一个用户,即每个消息将被准确传送n次,n是不同队列组的数量,而不是用户数量。它是否正确?
你是说,如果一个用户崩溃,我们会丢失数据? – Guss
如果订户脱机,那么nats服务器会在某个超时后知道此事件,在此超时期间,我们的情况可能会丢失数据。 – ritesh4302