![](/img/trans.png)
[英]GCP Pub/Sub Messages sent to topic that existed before the subscription was created
[英]Acknowledgement Behaviour of GCP Pub/sub messages
我正在研究包含对 GCP Pub/Sub 中主题的订阅的微服务。 由于微服务的多个实例在多个主机(云上的多个集群)上运行,我想知道来自订阅的消息的确认行为。 当一个实例上的订阅接收、处理并确认消息时,其他主机上的相同订阅是否接收到该消息?
我希望一旦订阅者确认,pub/sub 就不会进一步发送消息,但是如果不同主机上同一订阅的两个订阅者同时收到消息怎么办,是否会导致重复?
Pub/Sub 为每个订阅至少传递一次已发布的消息。
https://cloud.google.com/pubsub/docs/subscriber#at-least-once-delivery
如果您希望多个“工作人员”不接收消息克隆,则需要对所有这些工作人员使用一个订阅。
这是因为对于事件,您可以让多个系统在不同的订阅上监听同一主题,以便所有系统都接收到事件发生的事件。
对于命令,您通常希望单个系统来处理它们(即使在多个工作人员之间拆分),因此您需要一个在所有工作人员之间共享的单一订阅。
顺便说一句,您的系统在处理来自主题的事件/命令时应该是幂等的。 一般的经验法则是保证每条消息至少被订阅者接收一次。 这意味着同一系统可能会收到两次相同的命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.