在Java中保持作为线程实现的所需数量的Kafka使用者

在Java中保持作为线程实现的所需数量的Kafka使用者,java,multithreading,apache-kafka,Java,Multithreading,Apache Kafka,我有一个Runnable,它是卡夫卡消费者。我正在我的应用程序中运行该消费者的N个实例 当前,如果使用者中存在错误(异常),它只会记录错误并停止工作。在本例中,我有N-1个消费者在运行 是否有一种方法可以自动启动消费者的新实例并运行它,这样我就可以再次拥有N个消费者 我想要实现的逻辑与Supervisord相同,它跟踪流程并在需要时重新启动它们。尽管如此,我还是希望有一些标准的解决方案,而不是自己写 我的Runnables现在是这样管理的: ExecutorService executor =

我有一个
Runnable
,它是卡夫卡消费者。我正在我的应用程序中运行该消费者的N个实例

当前,如果使用者中存在错误(异常),它只会记录错误并停止工作。在本例中,我有N-1个消费者在运行

是否有一种方法可以自动启动消费者的新实例并运行它,这样我就可以再次拥有N个消费者

我想要实现的逻辑与Supervisord相同,它跟踪流程并在需要时重新启动它们。尽管如此,我还是希望有一些标准的解决方案,而不是自己写

我的
Runnable
s现在是这样管理的:

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.execute(consumerInstance1);
executor.execute(consumerInstance2);

我不明白您为什么不捕获异常并使用相同的group.id重新启动使用者?您是指使用
Thread.UncaughtExceptionHandler
?这就是我写我自己的解决方案的意思。我想,这个任务非常频繁,应该有某种标准的主管库,但找不到它。