【发布时间】:2018-01-01 01:44:46
【问题描述】:
简单的 gcloud 数据流管道:
PubsubIO.readStrings().fromSubscription -> 窗口 -> ParDo -> DatastoreIO.v1().write()
当对 pubsub 主题应用负载时,消息被读取但不被确认:
2017 年 7 月 25 日下午 4:20:38 org.apache.beam.sdk.io.gcp.pubsub.PubsubUnboundedSource$PubsubReader 统计信息 信息:Pubsub projects/my-project/subscriptions/my-subscription 有 1000 条已接收消息,950 条当前未读消息,843346 条当前未读字节,970 条当前飞行中消息,28367 毫秒最旧飞行中,1 个当前飞行中检查点,2最大飞行检查点,770B/s 最近读取,1000 最近收到,0 最近扩展,0 最近延迟扩展,50 最近确认,990 最近 NACK,0 最近过期,898 毫秒最近消息时间戳偏差, 9224873061464212ms 最近水印倾斜,0 最近延迟消息,2017-07-25T23:16:49.437Z 最后报告水印
应该在哪个管道步骤确认消息?
- stackdriver 仪表板显示有一些确认,但未确认的消息数量保持稳定。
- 跟踪中没有错误消息表明消息处理失败。
- 条目显示在数据存储中
【问题讨论】:
-
你用的是什么跑步者?您是否有运行的管道中的作业 ID?
-
我一直在使用数据流托管服务运行器,它为我提供了一个工作 ID 以及用于开发的本地运行器。顺便说一下,我正在使用 java sdk 2。
-
我偶尔看到消息 RPC timeout DEADLINE_EXCEEDED 并尝试使用更大的机器和更多的工人,如下所示:cloud.google.com/dataflow/pipelines/… 工作编号:2017-07-27_11_40_13-16176649068898383100 @BenChambers
-
还有工作 id 2017-07-27_14_51_37-4624978117098944513 已启用问题重现 wand 调试日志记录 (--defaultWorkerLogLevel=DEBUG)。
标签: google-cloud-datastore google-cloud-dataflow google-cloud-pubsub