使用配置
使用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
是等待消息的时间还是等待消息和阅读该消息的时间?这个值是否与读取超时不同?
答案 0 :(得分:1)
consumer.timeout.ms -1
来自Kafka configuration
如果没有可用消息,则向消费者抛出超时异常 在指定的时间间隔后消费
答案 1 :(得分:0)
来自git-hub-spring-integration-kafka-repository
“在上面的使用者上下文中,您还可以指定一个使用者超时值,该值将用于在没有消息消耗的情况下使消费者超时。此超时将适用于消费者中的所有流(线程) Kafka中的默认值是-1,这会使它无限期地等待。但是,Sping Integration默认将它覆盖为5秒,以确保在应用程序的生命周期中没有线程无限期地阻塞,从而给出他们有机会释放他们持有的任何资源或锁。建议覆盖此值以满足任何特定用例要求。通过在上下文上提供合理的消费者超时和轮询器上的固定延迟值,这个入站适配器能够模拟消息驱动的行为。“