如何在使用Google Cloud Pub / Sub时在AWS / SQS中实施“锁定”功能?

时间:2017-02-27 09:02:02

标签: amazon-web-services google-cloud-platform message-queue google-cloud-pubsub

如果您想在Google Cloud Pub / Sub之上实现生产者/消费者模式,您可能希望每条消息只能由一个消费者处理。但Google Cloud Pub / Sub会将每条消息发送给所有订阅者。

但AWS / SQS具有以下功能,可以轻松保证:

  

收到消息后,处理时会被“锁定”。   这使其他计算机无法同时处理消息。   如果消息处理失败,则锁定将过期并显示消息   将再次可用。在应用程序需要更多的情况下   处理时间,“锁定”超时可以通过动态改变   ChangeMes​​sageVisibility操作。

如何在Google Cloud Pub / Sub之上实现生产者/消费者模式?或者还有其他替代Google Cloud产品?

1 个答案:

答案 0 :(得分:1)

Google Cloud Pub / Sub有类似的机制。请注意,并非每个订阅者都会收到每条消息,每个订阅都会收到每条消息。区别很重要。单个订阅可以有多个订阅者,同时提取消息并同时处理同一订阅的不同消息。

在单个订阅中,当向订阅者发送消息时,在订阅创建时指定的ack截止日期(默认值为10秒),将不会将该消息发送给该订阅的另一个订阅者。接收消息的订户直到确认消息的ack截止日期或延长ack截止时间,这允许它花费更长的时间来处理消息而消息不被传递给其他订户。在某些客户端库中自动处理扩展ack截止日期,例如JavaGo,而其他人则需要明确修改ack截止日期,例如Python。确认截止日期的行为与SQS的可见性超时相同。

有关详细信息,请参阅message acknowledgement deadline