gpt4 book ai didi

kubernetes - Kafka 集群丢失或重复消息

转载 作者:行者123 更新时间:2023-12-04 11:33:55 25 4
gpt4 key购买 nike

在努力调整 Java 的 KafkaIOIT 以处理大型数据集时,我遇到了一个问题。我想通过一个Kafka主题推送100M记录,验证数据正确性,同时检查KafkaIO.Write和KafkaIO.Read的性能。

为了执行测试,我在 Beam 存储库 ( here ) 的 Kubernetes 上使用了 Kafka 集群。

预期的结果是,首先以确定性的方式生成记录,然后将它们写入 Kafka - 这样就结束了写入管道。
至于读取和正确性检查 - 首先从主题中读取数据,在解码成字符串表示后,计算整个 PCollection 的哈希码(有关详细信息,请查看 KafkaIOIT.java)。

在测试过程中,我遇到了几个问题:

  • 当从 Kafka 主题中读取预定数量的记录时,哈希值每次都不同。
  • 有时并非所有记录都被读取,Dataflow 任务无限期地等待输入,偶尔会抛出异常。

  • 我认为这种行为有两个可能的原因:

    要么是Kafka集群配置有问题

    或者 KafkaIO 在高数据量、复制和/或删除记录时表现不稳定。

    我找到了一个 Stack 答案,我相信它可以解释第一个行为:
    link - 如果消息传递不止一次,很明显整个集合的哈希值会改变。

    在这种情况下,我真的不知道如何在 Beam 中配置 KafkaIO.Write 以只生成一次。

    这使得消息被丢弃的问题未解决。你能帮我吗?

    最佳答案

    正如评论中提到的,一个实用的方法是从小处开始,看看这是否是一个扩展的问题。
    例如。从 10 条消息开始,乘以这个数字直到你看到一些奇怪的东西。
    此外,突出的一件事是您将数据发送到主题,并在读取主题后检查哈希。但是,您没有提到分区,是否有可能因为有多个分区而实际上看到不同的结果?
    Kafka 保证分区内的顺序。

    关于kubernetes - Kafka 集群丢失或重复消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57901708/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com