【发布时间】:2015-02-10 16:01:59
【问题描述】:
我需要通过“不可靠”的 Internet 连接每分钟插入 5K 条记录到基于云的数据库(来自同时运行的不同 10 个系统)。 Internet 连接为 10 MB,我的应用程序需要每月容忍一次中断,最长可达 1 天。我的应用在亚洲的一家工厂运行,IT 基础设施/支持很差,这是不可靠和长时间停机的根源。
您能否推荐如何在不丢失数据的情况下执行此操作?
我想到的解决方案:
保留一个内存(或简单文本文件)插入队列,每次插入失败时将其放入队列中,以便稍后重试。我不喜欢这样,因为我必须重新设计我的应用程序,让它有一个并行循环来处理这个问题,以免影响主循环的时间。
使用消息代理/队列(如 RabbitMQ)。我不喜欢这样,因为虽然将 SQL 语句放入代理很容易,但我宁愿不必编写额外的服务来轮询代理、执行 sql 语句、处理错误等。我知道 Mule ESB它可以完成所有这些,但设置起来看起来很复杂。
数据库复制。我实际上需要 N:1(合并)复制,我认为除了 MS SQL Server 之外的任何主要数据库都不支持它,由于复杂性,我宁愿不必处理。在这样的中断之后,我还可能需要重新启动数据库并等待它赶上来,然后再执行任何更多的写入,这两者都是不可取的。
还有其他解决方案吗?谢谢。
【问题讨论】:
-
如果您的网络连接不可靠,那么复制将如何解决任何问题?无论哪种方式,您的数据都必须通过该废话链接到主服务器。
-
我已经澄清了我所说的不可靠的意思。
标签: cloud real-time merge-replication rdbms