【发布时间】:2017-06-12 07:54:29
【问题描述】:
我们正在尝试在通过 VPN 连接的另一个远程数据库中捕获 [near] 实时发生在核心数据库上的一些事务。 这些交易可以轻松识别,但我们在决定工作流程和确定使用哪种技术时面临挑战。
例如。 1.) 每 x 秒转储 CSV 文件。 从核心系统中,我们每 x 秒创建一个包含所需信息的 CSV 文件。然后我们会将这个文件推/拉到远程系统并处理它。
2.) 网络服务 我们将有 2 个 Web 服务,一个在发送方,另一个在接收方。 每隔 x 秒,发送方 Web 服务将执行一次查询并从源数据库中获取记录,并将数据分批“y”条记录推送到接收方 Web 服务。 然后,接收方将处理记录并发送“y”个记录的确认。
注意。
1.) 理想情况下,我们希望使流程成为实时的。上述两个想法都是 [near] Real-Time 而不是 Real-Time。
2.) 源数据库系统不是特定的。可以是oracle、ms-sql、mysql、sybase、informix等。
3.) 远程目标数据库是 oracle。
欢迎提出任何想法,而且所使用的技术也可以是灵活的。 主要重点是减少由于此过程对核心数据库造成的负载。
编辑: 我越来越清楚的是,几乎不可能实现异构数据库系统的实时实时性,因为插入记录的触发器/通知是特定于 RDBMS 的。
除了上面分享的 2 个示例之外,我想将问题的焦点转移到更接近实时的想法。
另外请注意,我们几乎无法控制源数据库以及最初将记录插入数据库的进程/服务。我们只能控制记录。
【问题讨论】:
-
源 DBMS 很重要,并非所有 DB 都提供通知外部应用程序更改的选项。
-
感谢您的回复。我明白你所说的关于 DBMS 的内容。我已经相应地编辑了我的问题。
标签: java web-services real-time