Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 如何避免Kafka Streams应用程序中具有空闲线程的事务过期_Apache Kafka_Apache Kafka Streams_Kafka Producer Api - Fatal编程技术网

Apache kafka 如何避免Kafka Streams应用程序中具有空闲线程的事务过期

Apache kafka 如何避免Kafka Streams应用程序中具有空闲线程的事务过期,apache-kafka,apache-kafka-streams,kafka-producer-api,Apache Kafka,Apache Kafka Streams,Kafka Producer Api,我在一个关键应用程序中使用Kafka Streams,并且我面临着事务在空闲线程中过期的问题。这会导致重新平衡后出现问题,其中任务转移到先前空闲的线程,而生产者已过期。但是,直到制作人第一次尝试发送时抛出ProducerFencedException,流关闭,这一点才变得明显。然后我们需要回收应用程序以使其重新开始处理,这是不可接受的 以下是应用程序设置: 具有2个分区的单个主题 Spring Boot应用程序的4个实例,每个应用程序实例运行2个流线程。增加实例的原因是,它是一个关键应用程序,

我在一个关键应用程序中使用Kafka Streams,并且我面临着事务在空闲线程中过期的问题。这会导致重新平衡后出现问题,其中任务转移到先前空闲的线程,而生产者已过期。但是,直到制作人第一次尝试发送时抛出ProducerFencedException,流关闭,这一点才变得明显。然后我们需要回收应用程序以使其重新开始处理,这是不可接受的

以下是应用程序设置:

  • 具有2个分区的单个主题
  • Spring Boot应用程序的4个实例,每个应用程序实例运行2个流线程。增加实例的原因是,它是一个关键应用程序,我们必须允许该应用程序的两个实例可能因服务器修补而停机,并且通过运行多个应用程序实例(即2个),仍然具有恢复能力。每个应用程序都能够在SLA中自己完成满载
我非常感谢任何人对我们如何设置Kafka Streams应用程序或Kafka群集以避免使用此设置使事务过期有任何见解


相关版本:Kafka群集版本:1.0.0,Kafka客户端版本:1.1.0,Spring Boot版本:2.0.0

如果出现
ProducerFuncedException
异常,Kafka流不应关闭,但应尝试重新平衡并重新加入消费者群体。也许
1.1.0
release中有一个bug——你能不能换一个新的版本?也许吧。您可以推荐一个版本吗?另外,我们看到的消息流是第一个,ProducerFencedException的错误。然后出现一个警告,说明流任务已迁移到另一个线程。作为僵尸关闭它。接下来我们得到警告:检测到一个任务迁移到另一个线程。这意味着该线程错过了再平衡,退出了消费群体。现在正试图重新加入消费者群体。然后是另一个错误java.lang.IllegalStateException:记录的分区不属于此分区组。然后开始关机最新版本是2.3.1和2.4.0应该在未来几周发布。。。因此,您使用的是相对较旧的版本(1.1.0于2018年3月发布…)——较新的版本通常比较旧的版本要好关于错误流。
ProducerFencedException
不是螺纹死亡的原因,但是
IllegalStateException
是:您指出的错误消息与2.0.0版本中修复的此票据上的错误消息相同:在进行一些分析后,我们将更新到2.0.1版本,因为其中还有两个与ProducerFencedException相关的修复。所以谢谢你。