首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Pub/Sub稳定的Beam(DataFlow)流

来自Pub/Sub稳定的Beam(DataFlow)流
EN

Stack Overflow用户
提问于 2022-07-13 07:47:05
回答 1查看 172关注 0票数 0

我们在DataFlow中有一个传输流作业,它从PubSub读取。在高峰时段,PubSub消息的数量从25k/s增加到130 k/s,并在120 k/s下停留一个小时。在读取Pub/Sub步骤(2-3分钟)和订阅待办事项中,我们可以看到一些短的水印尖峰(在开始和之后)。数据流表示所有阶段都可能存在 stuckness,但日志中没有任何内容。

我们的集群是固定大小的,没有自动标度的,我认为我们有足够的工作人员(尖峰快速下降,这意味着我们可以处理高峰时间负载,甚至消耗积压)。

我唯一的想法是,除了将来的分组聚合之外,增加的负载还会导致PubSub读取中的内部洗牌。也许有人对此有什么想法?

EN

回答 1

Stack Overflow用户

发布于 2022-07-13 15:19:31

您可以按照顺序使用消息排序来传递消息,如果消息具有相同的排序键并且位于同一区域,则可以按照Pub/Sub服务接收消息的顺序来启用消息排序和接收消息。

Pub/Sub提供每个消息至少一次,因此Pub/Sub服务可以重新传递消息。当您按顺序接收消息,而Pub/Sub服务用一个排序键重新传递消息时,Pub/Sub还通过使用相同的排序键重新传递后续消息来维护订单。Pub/Sub服务按照最初接收消息的顺序重新传递这些消息。

具有相同排序键的消息保证按顺序传递。

具有不同排序键的消息不能保证按顺序传递,这与发布时间无关。

在一种罕见的情况下,无法确认消息会阻碍其他排序密钥的消息传递。当服务器意外重新启动或由于通信量更改而使用的服务器集发生更改时,会发生此问题。为了在这些事件中保持顺序,必须在传递来自新服务器的消息之前确认所有发布到旧服务器的消息,即使它们用于不同的排序键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72962650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档