Mik*_*der 5 apache-kafka apache-kafka-streams
我有一个运行Kafka Streams的应用程序(0.10.2.1).当我关闭Kafka群集时,流应用程序继续等待下一条消息,当群集重新启动时,它将恢复消耗消息.对于群集关闭的持续时间,应用程序似乎正常工作.我测试了这个超过45分钟.
我希望卡夫卡能够抛出异常或停止.我已经配置了一个StateListener在KafkaStreams关闭时记录,但是从不调用它.
kafkaStreams.setStateListener((newState, _) => {
if (newState == KafkaStreams.State.NOT_RUNNING) {
Log.error("Kafka died unexpectedly.")
}
})
Run Code Online (Sandbox Code Playgroud)
如何在无法连接到群集时让Kafka抛出异常或关闭?
注意:这假定应用程序启动后群集关闭
为什么您希望 Kafka Streams 应用程序宕机?
该应用程序应该能够适应经纪人故障,也就是说,继续耐心地运行,直到经纪人恢复并且看起来这就是它正在做的事情。如果您有多个 Kafka Streams 应用程序实例,其中一个实例失去了与代理的连接,则负载将重新平衡到其余实例上。如果每个失去连接的实例都自行关闭,那么即使代理连接恢复,您也会丢失实例,并因此失去冗余和并行性。现在的 Kafka Streams 是为了恢复能力而设计的。我认为这是正确的行为。
恕我直言,如果您想检测代理(或连接)故障,那么这是一个用于监视的用例,而不是用于将故障引入 Kafka Streams 应用程序。
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |