【发布时间】:2018-12-05 17:41:18
【问题描述】:
我目前在一个使用 JPA 和 Kafka 的项目中。我正在尝试找到一套组合这些操作的良好做法。
在现有代码中,生产者与 jpa 在同一事务中使用,但是,根据我的阅读,他们似乎不共享事务。
@PostMapping
@Transactional
public XDto createX(@RequestBody XRequest request) {
Xdto dto = xService.create(request);
kafkaProducer.putToQueue(dto, Type.CREATE);
return dto;
}
其中kafka生产者定义如下:
public class KafkaProducer {
@Autowired
private KafkaTemplate<String, Type> template;
public void putToQueue(Dto dto, Type eventType) {
template.send("event", new Event(dto, eventType));
}
}
这是组合 jpa 和 kafka 的有效用例吗,是否正确定义了事务边界?
【问题讨论】:
-
您是否正在尝试实现OLTP系统的变更数据捕获?
标签: java spring-boot jpa apache-kafka