gpt4 book ai didi

java - 来自mysql的实时数据消费

转载 作者:行者123 更新时间:2023-11-29 05:59:04 28 4
gpt4 key购买 nike

我有一个用例,我的数据存在于 Mysql 中。

对于在 Mysql 中插入的每个新行,我必须对新数据执行分析。

我目前是如何解决这个问题的:

我的应用程序是一个 Spring-boot 应用程序,我在其中使用了 Scheduler 每 2 秒检查一次数据库中输入的新行强>.

当前方法的问题是:

即使 Mysql 表中没有可用的新数据,Scheduler 也会触发 MySQL 查询以检查是否有新数据可用。

Triggers 中解决任何 SQL 数据库中此类问题的一种方法。

但直到现在我没有成功创建Mysql触发器,它可以调用基于Java的Spring应用程序或一个简单的java应用程序。

我的问题是:

他们是否有更好的方法来解决我的上述用例?如果它们是为此类用例构建的,即使我愿意更改为另一个存储(数据库)系统。

最佳答案

这基本上听起来像是一个架构问题。您实际上是在将数据库用作 API,如您所见,这会导致各种问题。理想情况下,这个数据库将被包装在一个服务中,该服务可以管理需要通知的系统的通知。让我们看看 future 的几个不同选择。

继续投票
您没有概述当前轮询方法的实际问题是什么。在不需要时运行作业是否会导致某种问题?除非您有兴趣进行更大的更改,否则我会支持只保留它。

数据库触发器
虽然我不知道有什么方法可以通过数据库触发器启动 Java 进程,但您可以从一个触发器中执行 HTTP POST。考虑到这一点,您可以在网络应用程序中暂存批处理作业,该应用程序使用 POST 在触发器触发时启 Action 业。

将现有数据存储包装在服务中
恕我直言,这是最佳选择。这允许有一个记录系统,该系统提供可以版本化的 API 等。这将允许关于通知谁的任何逻辑也将封装到该服务中。

用允许更好通知的东西替换数据存储
如果没有任何关于存储数据的真实信息,很难说这有多实用。但是使用 Apache Kafka 或 Apache Geode 之类的东西都可以提供在新数据持久化时收到通知的选项(Kafka 通过监听主题,Geode 通过连续查询)。

郑重声明,我提倡将现有数据库包装在服务中。该服务将是进入数据库并负责任何所需通知的唯一途径。

关于java - 来自mysql的实时数据消费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588596/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com