带有Spring Integration的Kafka - 消费者超时与读取超时?

时间:2016-01-29 09:19:06

标签: java spring-integration apache-kafka kafka-consumer-api

使用配置

使用spring-integration-kafka扩展和以下配置:

<int-kafka:zookeeper-connect id="zookeeperConnect"
    zk-connect="#{kafkaConfig['zooKeeperUrl']}" zk-connection-timeout="10000"
    zk-session-timeout="10000" zk-sync-time="2000" />

<int-kafka:consumer-context id="consumerContext" consumer-timeout="5000" zookeeper-connect="zookeeperConnect">

timeout是等待消息的时间还是等待消息和阅读该消息的时间?这个值是否与读取超时不同?

2 个答案:

答案 0 :(得分:1)

consumer.timeout.ms -1
来自Kafka configuration

  

如果没有可用消息,则向消费者抛出超时异常   在指定的时间间隔后消费

答案 1 :(得分:0)

来自git-hub-spring-integration-kafka-repository

“在上面的使用者上下文中,您还可以指定一个使用者超时值,该值将用于在没有消息消耗的情况下使消费者超时。此超时将适用于消费者中的所有流(线程) Kafka中的默认值是-1,这会使它无限期地等待。但是,Sping Integration默认将它覆盖为5秒,以确保在应用程序的生命周期中没有线程无限期地阻塞,从而给出他们有机会释放他们持有的任何资源或锁。建议覆盖此值以满足任何特定用例要求。通过在上下文上提供合理的消费者超时和轮询器上的固定延迟值,这个入站适配器能够模拟消息驱动的行为。“