在数据传输DTS中,我们服务现在出现了问题,位点一直停在11:41,但是我们的程序还在一直消费,这是我查看到的异常信息,想知道是什么原因导致的?
完整的日志为:
2023-12-25 14:49:19.525 INFO 1 --- [kaRecordFetcher] c.a.d.s.c.r.KafkaRecordFetcher : KafkaRecordFetcher: offer kafka record has failed for a period (10s) [ ConsumerRecord(topic = cn_beijing_vpc_rm_2zeoyz23rl9ir30o8_yx_dts2js_version2, partition = 0, offset = 280703077, CreateTime = 17034756
91783, serialized key size = -1, serialized value size = 447, headers = RecordHeaders(headers = [RecordHeader(key = togo, value = [0, 1, 1, 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 12, 0, 0, 0, 0, 0, -70, -119, -23, 8, 6, -42, -25, -57, -40, 12, 0])], isRea
dOnly = false), key = null, value = [B@265b0e14)]
数据传输服务DTS中消息重复消费的问题可能有多种原因。一种可能的原因是消费端SDK没有正确处理消费完的消息,没有及时向服务端发送ACK确认信息。当服务端没有收到ACK时,它会认为消息未被成功消费,因此会再次推送相同的消息。这就导致了消息的重复消费。
另一种可能的原因是订阅任务的消费组在数据订阅到期后并未及时续费或删除,导致消费组保留的时间超过了7天。如果在此期间实例被释放,那么对应的消费组也会被删除,可能会导致消息重复消费。
此外,还需要检查Demo版本是否使用正确,因为不同的源库类型和数据格式需要使用不同的Demo版本。同时,也需要查看订阅任务是否有数据写入Kafka,可以在控制台的消费组管理中查看未消费的消息数是否大于零。
您试下重建消费组指定位点重新消费看下。您使用这个工具包先排查下;https://help.aliyun.com/zh/dts/user-guide/troubleshoot-issues-in-change-tracking-tasks?spm=a2c4g.11186623.0.i3 如果创建了多个消费组,会重复消费,否则不会;订阅client有重启可能也会导致重复消费。此回答整理自钉群“DTS客户交流群-2”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。