最近做了这样一个项目:
假设有100个节点A,都运行着结构相同但互相独立的Oracle数据库系统;
然后有一个中心的节点B,上面运行着SQLServer数据库,
现在做的程序就是手动或者定时的把100个节点的数据汇总到中心节点的Oracle数据库中。
现在是这样做的,在节点A上把Oracle数据库中的数据通过程序导出成XML格式,照片的导出成jpg格式,然后调用Winzip打成压缩包,通过FTP的方式传输到节点B所在的服务器上;然后节点B上的程序自动解包zip,并解析XML数据,然后再把数据写入SQLServer数据库。
这种方式的可靠性太差,通过近两年的实际测试,发现经常会出问题。并且FTP的方式,安全性也得不到保障。
与这个项目相似的是移动、联通等运营商的网站的准实时话费查询也不是实时的,数据也是有一定的延迟。不知道他们是通过什么方式来实现的。
写了这么多不知大家能不能明白我的意思,请问有经验的各位大虾对这种模式有没有什么好的建议,不胜感谢!
------解决方案--------------------------------------------------------
想知道是什么问题,因为这种思路很传统的。
------解决方案--------------------------------------------------------
我也有可能碰到这种问题,关注中。
如何才能保证数据传递稳定性和及时性,是不是通过ftp不是最佳方案呢?
如何在中心节点节点采集数据并保证效率?通过xml好像速度存在问题吧?
------解决方案--------------------------------------------------------
用IBM MQ可以保证传输可靠性,然后选个效能高的语言(我们以前用C)基于MQ的API进行开发,MQ提供事务、加密、压缩等功能和机制,相信是个不错的选择。