gpt4 book ai didi

apache-kafka - 禁用 Kafka session 超时

转载 作者:行者123 更新时间:2023-12-03 17:30:30 27 4
gpt4 key购买 nike

我试图通过 Apache Camel 的源代码来确定错误的来源。尽管配置了 StringDeserializer,但我仍然收到此错误对于消费者:

org.apache.kafka.common.errors.SerializationException: Can't convert key of class [B to class org.apache.kafka.common.serialization.StringSerializer specified in key.serializer
Caused by: java.lang.ClassCastException: [B cannot be cast to java.lang.String
at org.apache.kafka.common.serialization.StringSerializer.serialize(StringSerializer.java:28)

当我尝试通过 Camel 尝试找出反序列化的 String 仍然以字节数组结束时,Camel 继续关闭自己,因为协调器认为消费者已死:
20:45:04.171 [kafka-coordinator-heartbeat-thread | rtp-creditor-receive-payment] INFO  o.a.k.c.c.i.AbstractCoordinator - [Consumer clientId=consumer-1, groupId=rtp-creditor-receive-payment] Marking the coordinator rtp-demo-cluster-kafka-0.rtp-demo-cluster-kafka-brokers.rtp-reference.svc.cluster.local:9092 (id: 2147483647 rack: null) dead

如何完全禁用所有超时,以便我可以单步执行源代码而不必担心消费者被标记为死亡?

最佳答案

尽管您无法禁用 Kafka 集群与其使用者之间的所有超时,但您可以将一些属性修改为很长:

  • group.max.session.timeout.ms - 这是任何消费者的最大 session 超时。默认值为五分钟。将此设置为最大整数左右,例如 2100000000 , 在通常名为 server.properties 的代理属性文件中.
  • max.poll.interval.ms - 这类似于 session 超时,如果在此间隔内没有轮询,则会将消费者标记为死亡。将此设置为小于 request.timeout.ms 的值以及,例如 1900000000 .

  • 在 Apache Camel 中,您需要设置以下属性:
  • consumerRequestTimeoutMs - 这是等待客户端响应的最长时间。将此设置为 2000000000 .
  • sessionTimeoutMs - 这可能是 session 超时将您的消费者标记为死亡。这应该设置为小于 request.timeout.ms 的值.所以,像 1900000000 .

  • 可能还有几个, found here , 任何与 timeoutms会很好看。

    关于apache-kafka - 禁用 Kafka session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211753/

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