等待springdata中的一行

问题描述 投票:0回答:1

用例:
一个线程接收一个businessid。 另一个完全独立的线程不断地将数据放入数据库,其中一列是businessid。

第一个线程应该从数据库中读取给定businessid的行并对其执行任务。

如何让第一个线程知道给定的businessid已进入数据库?

我知道我可以定期获取数据库,但是有没有更干净、性能更友好的方法来做到这一点? 就像以阻塞方式获取/查找一样。或者从数据库回调..等等?

spring-data
1个回答
0
投票

定期从数据库轮询是最简单的方法。如果你想以反应式的方式做到这一点,只要插入相应的数据库记录,应用程序就会收到通知,那么 spring-data 就没有什么帮助了。

执行此操作的现代技术是使用更改数据捕获 (CDC)。一个著名的CDC Java开源工具是Debezium,它的高层架构是:

基本上,它对数据库日志文件中的更改做出反应,并将这些更改发布到 Kafka 主题。然后,您的应用程序可以使用 Kafka 主题中的更改。

© www.soinside.com 2019 - 2024. All rights reserved.