Java中的MySql表侦听器

Java中的MySql表侦听器,java,mysql,Java,Mysql,这是我的要求: 我的java服务是一个持续运行的过程。当java服务启动时,它从MySql数据库中的一个表加载配置。 当有任何更改(可以是插入/更新/删除,也可以是java服务之外的更改)时,java服务应立即重新加载配置 我在stackoverflow中看到一个用于Oracle数据库,但我正在寻找Mysql数据库。 我可以使用单独的线程来实现这一点,它以一定的间隔轮询数据库表。但是,为变革投票并不是一个好办法。相反,我正在寻找任何观察者/监听者,当MySql表中有任何更改时,他们都会发出通知。

这是我的要求:

我的java服务是一个持续运行的过程。当java服务启动时,它从
MySql
数据库中的一个表加载配置。

当有任何更改(可以是插入/更新/删除,也可以是java服务之外的更改)时,java服务应立即重新加载配置

我在stackoverflow中看到一个用于Oracle数据库,但我正在寻找Mysql数据库。

我可以使用单独的线程来实现这一点,它以一定的间隔轮询数据库表。但是,为变革投票并不是一个好办法。相反,我正在寻找任何观察者/监听者,当MySql表中有任何更改时,他们都会发出通知。

有人能帮我做到这一点吗


注意:如果这个问题已经在某个地方得到了回答,请在评论中发布链接,我将删除这个问题。

您想要更改数据捕获系统。也许你可以用一个基于卡夫卡的

您可以使用卡夫卡连接。这个连接器首先快照您的表,然后读取mysql binlog,以便能够在表上具有一致的带有insert/modify/delete的kafka主题


如果您不想使用它,也许您可以将代码分叉以使用与它们相同的东西,只需将输出修改为您的应用程序侦听器。

看起来这可能会对您有所帮助。毕竟,这是一条sql语句,它将返回一个结果集:@institute,感谢您的响应,但我必须再次以正确的间隔轮询数据库。我试图避免它。您是否考虑过使用配置文件或属性文件(而不是数据库表)?你可以使用一个测试来检测文件的更改。没有什么是现成的,你可能会在这里的答案中找到:@prasad,出于其他原因,我们必须使用mysql作为配置源。我认为该文件是配置文件。不管怎样,谢谢你的评论。没有必要真的用叉子;如果需要,您还可以使用Debezium作为Java应用程序的一种工具,允许您根据需要手动处理更改消息。(免责声明:我是Debezium项目负责人)嘿,我不知道这个嵌入Debezium的好功能。非常好。