在我们的Spring Batch应用工作者中,项目处理者通过Kafka与另一个服务进行异步交互。这里的要求是我们需要一个确认,以便重试失败的批处理,条件是不等待确认。
Spring批处理中是否有可以异步使用Kafka的机制?是否可以在重新运行作业时重新运行特定的本地工作步骤?
我们使用Spring批处理决策器在同一步骤中实现生产者和消费者。因此,在第一次运行时,它将只生产Kafka,而在第二次运行时,它将消费Kafka。
我们正在寻找解决方案,我们可以异步消费Kafka在Spring批处理应用程序,以便重新运行特定的工人步骤。
1条答案
按热度按时间ddarikpa1#
在Spring批处理中有没有什么机制可以让我们异步地使用Kafka?在重新运行作业时,有没有可能重新运行特定的本地工作步骤?
根据您的图表,您正在从一个项目处理器中进行调用。您可以从Spring Batch中获得的最接近的“特性”是
AsyncItemProcessor
。这是一个特殊的处理器,它在一个单独的线程中异步处理项目。回调在一个AsyncItemWriter
中展开,并带有调用的结果。除此之外,我看不出有任何其他明显的方法可以通过Spring Batch的内置特性来实现这一点,因此您必须在自定义的
ItemProcessor
中进行管理。