数据传输服务 数据消费异常

这篇针对数据订阅场景中用户消费程序可能遇到的无法消费数据、数据丢失或重复、消费端延迟增大三类问题,给出排查思路:先使用DTS Demo测试定位问题源,再分别检查网络、参数、程序逻辑或提交工单处理。 无法消费数据:先用DTS Demo测试,若Demo可消费则排查自身程序,否则检查网络、参数、Demo版本及Kafka数据量。 数据丢失或重复:通过调整Kafka位点或新建消费组复现问题,可复现则提交工单,否则检查消费程序。。

相关产品
数据传输服务 产品页,含版本规格、价格与购买入口。

一、问题现象

数据订阅场景中,用户使用自己的消费程序进行数据消费,可能遇到如下异常:

1. 无法消费数据。

2. 消费到的数据丢失或者重复。

3. 消费端延迟越来越大。

二、1. 无法消费数据

如果用户使用自己的消费端程序无法消费到数据,请先使用 DTS 提供的 Demo 进行消费测试。

·如果使用 DTS 提供的 Demo 可以消费数据,则需要用户排查自己的消费程序。

·如果使用 DTS 提供的 Demo 也无法消费数据,则需要进行如下排查:

·检查消费端网络环境是否满足要求,消费端需要在腾讯云内网且与 DTS 订阅任务同地域。

·检查启动 Demo 的参数填写是否有误,尤其是消费组密码。

·检查 Demo 版本是否使用正确,不同的源库类型,不同的数据格式需要使用不同的 Demo 版本。

·检查订阅任务是否有数据写入 Kafka(在控制台消费组管理中查看未消费的消息数是否大于零)。

三、2. 消费到的数据丢失或者重复

部分订阅任务发生重启的一些场景中,生产端可能会出现 数据重复,导致消费到的数据也出现重复。但这种属于少数情况,除此之外出现的其他数据重复,或者数据丢失,不符合预期。

用户消费到的数据不符合预期,出现数据重复、丢失等问题,一般的原因是用户的消费程序处理异常,请用户先进行问题重现。具体复现问题的操作,参考如下二选一即可:

·在控制台上调整 Kafka 位点,将位点回调到之前的位置再次消费。

·新建消费组,在新的消费组上重复消费。(不同消费组上消费互不影响)

如果可以复现问题,则 提交工单 处理;如果不能复现,则可能是用户消费程序的问题,请先检查消费程序。

四、3. 消费端数据延迟越来越大

1. 消费端程序 commit 的逻辑问题。

如果消费程序只消费不做 commit,Kafka 的位点就不会更新。DTS Demo 中默认的 commit 逻辑为:当消费到 checkpoint 类型的消息时做一次 commit,订阅服务大概每10秒写入一个 checkpoint 类型的消息。如果用户修改了 commit 规则就有可能出现该问题,请用户先排查消费程序中的 commit 规则。

2. 消费效率太低。

消费效率受多个因素影响,网络情况、消费程序的处理效率、并发消费、多分区消费等。用户可以新建一个消费组用 DTS 提供的 Demo 消费,对比用户自己的消费程序的速度,排除消费程序的效率卡点。其他的就需要用户检查网络情况,提高数据处理速度或者增加消费者数量,多个分区的 topic 尽量使用多进程并发消费。

赞 (0)
上一篇 4天前
下一篇 4天前