我们的客户正在运行一个带有多个从属的单主(在一个集群中)。
现在,他希望我们编写一些(仅)在从属设备上添加、更新或删除新记录时在从属设备上运行的触发器。此触发器应运行外部 java 程序。
这可能吗 ?推荐的 ?
我们如何从触发器运行 java 程序?推荐/安全吗?
有什么需要注意的问题吗?
我们的客户正在运行一个带有多个从属的单主(在一个集群中)。
现在,他希望我们编写一些(仅)在从属设备上添加、更新或删除新记录时在从属设备上运行的触发器。此触发器应运行外部 java 程序。
这可能吗 ?推荐的 ?
我们如何从触发器运行 java 程序?推荐/安全吗?
有什么需要注意的问题吗?
是的,这是可能的。您需要在从属设备上创建这些触发器,它们将在读取和执行 binlog 时触发。
您可以使用 MySQL Forge (或此链接)提供的 sys_exec UDF执行外部程序。
SELECT sys_exec('/path/to/program')
请注意程序的作用,直到外部程序返回 - 查询不会完成。如果它需要进一步处理,我建议创建某种在端口上侦听的排队系统,以便您可以立即exit(0)
让程序完成它的工作并释放 mysql 线程,以便查询可以完成。