java - 实时数据提取/交易捕获

标签 java web-services real-time

我们正在 try catch 核心数据库(通过 VPN 连接的另一个远程数据库)上[近]实时发生的一些事务。 这些交易很容易识别,但我们在决定工作流程和确定使用哪种技术时面临挑战。

例如。 1.) 每 x 秒转储 CSV 文件。 从核心系统中,我们每 x 秒创建一个包含所需信息的 CSV 文件。然后我们会将此文件推送/拉取到远程系统并对其进行处理。

2.) 网络服务 我们将有 2 个 Web 服务,一个位于发送方,另一个位于接收方。 每隔 x 秒,发送方 Web 服务将执行一次查询并从源数据库获取记录,并将数据以“y”条记录的批处理推送到接收方 Web 服务。 然后接收方将处理记录并发送“y”记录的确认。

注意。

1.) 理想情况下,我们希望使该过程实时化。上述两种想法都是[接近]实时的,而不是实时的。

2.) 源数据库系统不具体。可以是oracle、ms-sql、mysql、sybase、informix等

3.) 远程目标数据库为oracle。

欢迎任何想法,并且使用的技术也可以灵活。 主要重点是减少由于此过程对核心数据库造成的负载。

编辑: 我越来越清楚,使用异构数据库系统获得实际的实时性几乎是不可能的,因为插入记录的触发器/通知是 RDBMS 特定的。

除了上面分享的两个示例之外,我想转移问题的焦点,以便更好地接近实时想法。

另请注意,我们对源数据库以及最初将记录插入数据库的流程/服务几乎没有控制。我们只能控制记录。

最佳答案

参见this article有关如何在 PostgreSQL 中监听数据库更改(在本例中为数据库触发器)的示例。基本上,您设置一个函数来处理向所有感兴趣的客户端发送事件的触发器。然后,您的应用程序将监听此事件,并可以在执行触发器时启动同步。该示例将触发器应用于特定表上的新插入。

关于java - 实时数据提取/交易捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44494160/

相关文章:

swift - Pusher Swift 成员添加/删除事件

java - ANTLR 可以生成最终的解析器类吗?

java - JNI - 谁释放 Java 方法返回的 ByteBuffer?

javascript - 使用 Javascript 的实时 Html 编辑器

java - : "Publishing to WAS 8559 ..." 期间发生内部错误

c# - 使用 RestSharp 反序列化来自一个资源的不同数据输出

使用 ULPOSC32K 在 Atmel SAM L21 Xplained Pro 中配置 RTC - 频率错误

java - 为什么按位置读取 JDBC 结果集比按名称读取 JDBC 结果集快多少?

java - 使用cmd运行java程序

web-services - Web 服务、Axis 和 OSGI (knopflerfish)