首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Kafka事务提交序列

Spring Kafka事务提交序列
EN

Stack Overflow用户
提问于 2021-09-01 19:06:34
回答 1查看 98关注 0票数 0

我有两个服务。用户调用Service-A的REST端点,后者进行处理,在数据库中创建记录/条目,然后发送Kafka事件,以便可以使用Service-B。

我用@Transactional进行了注解,这样数据库提交和Kafka提交就会同时发生。

服务B将接收Kafka事件,处理并将更新后的事件发送回服务A。

在这种情况下,我发现Service-A中的某些更新失败,说明找不到记录/条目。这是一种竞争条件吗?

由于ChainedKafkaTransactionManager已被弃用,我如何确保先提交数据库,再提交Kafka?

对于生产者启动的事务,在事务同步的情况下,Kafka提交也将在数据库之后发生。来自加里·罗素

在我的场景中,由于事务不是由Kafka发起的,我如何才能反向提交?

代码语言:javascript
复制
@Transactional("dstm")
public void someMethod(String in) {
  Employee employee = this.repository.save(new Employee(in));
  if(employee.isSomeCondition()) {
    sendToKafka(employee);
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 19:17:14

实际上,这里有一个很好的示例,说明如何在几个数据源上配置事务处理:https://docs.spring.io/spring-kafka/docs/current/reference/html/#ex-jdbc-sync

另一个可能导致问题的问题是您的使用者的隔离级别。你把它改成read_committed了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69019343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档