【发布时间】:2021-04-13 04:36:21
【问题描述】:
当前实施
我有一个写入 kafka 主题的春季批处理作业。 我从数据库中读取记录,对其进行转换并写入 kafka 主题。
现有工作的新变化
我想连同主要主题一起写一个审计主题。
对于从数据库中读取的每条记录,我正在向主要主题写入一条说 Class Abc 类型的消息,对于同一条记录,我想将另一个实体类类型的消息写入审计主题。
问题陈述
目前,我正在使用不同的 KakfaTemplate 来写入两个主题,但问题是如何处理如果在写入主要主题后作业失败并且它从不写入审计主题。如何回滚事务(我目前的实现中没有实现事务)。
我需要更改我的应用程序的整个实现吗?我应该在一个事务中同时写这两个主题,还是有针对我当前实现的任何解决方案?
事务管理器
@Override
protected JobRepository createJobRepo(){
JobRepositoryFactoryBean fac = new JobRepositoryFactoryBean;
fac.setDataSource(ds);
fac.setTransactionManger(transactionManger);
fac.set();
return fac.getObject();
【问题讨论】:
标签: java apache-kafka spring-batch