问题 :具有多个实例的 org.apache.kafka.streams.KafkaStreams 在单个JVM中初始化(例如:内存、CPU使用率、并发问题)?
org.apache.kafka.streams.KafkaStreams
出身背景 :我试图提供一个bulkheading机制,以便在流操作引发异常时不会转换整个 KafkaStreams 实例转换为 ERROR 状态我已将应用程序分为不同的 卡夫卡团队 每个实例负责单独的任务(日志记录、外部web调用、db调用等)。
KafkaStreams
ERROR
卡夫卡团队
我找不到有关如何(1)恢复 卡夫卡团队 来自的实例 错误 说明或(2)设计一个应用程序,使用 卡夫卡团队 或者(3)证明或反驳我目前的做法。
错误
如果我的方法违反了Confluent或Kafka记录的最佳实践,那么了解这一点也会很有帮助。
应用程序版本 :卡夫卡1.0.0,卡夫卡流1.0.0
如果 KafkaStreams 实例结束于 ERROR 州,你需要 close() 然后创建一个新实例,您可以开始替换旧实例。
close()
用于运行多个 卡夫卡团队 单个JVM中的实例:这基本上是可以的。注意,如果这些实例属于同一个应用程序,则需要使用不同的状态目录对其进行配置,以将两者相互隔离。否则,会自动将彼此隔离。
对我来说,你的设计很有意义。但请注意,它的资源密集度更高 KafkaConsumer 和 KafkaProducer 无法为您的安装程序共享。
KafkaConsumer
KafkaProducer