跨网闸实现数据同步

        网闸(GAP)全称安全隔离网闸。安全隔离网闸是一种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接,并能够在网络间进行安全适度的应用数据交换的网络安全设备。由于是在物理链路上对网路实行隔离,这就大大减少了网络受到外部攻击的可能,很好地保护了网络的安全。

       但是这样的隔离也带来了一个问题,开发跨网闸系统时,内网与外网之间的数据同步问题。

最开始接触这个问题,我们的方案是使内网外网各自拥有一台数据库,通过保持数据库的同步来实现内外网的数据同步。

实现两台数据库的同步我们尝试使用了数据库的订阅与发布功能。使两台数据库建立发布并订阅对方,以此实现数据库的同步。但是这种方式在跨网闸的情况下并不适合,网闸的存在隔离了内网与外网,导致了两台数据库检测不到对方的发布。后来我们在网上找到了类似问题的解决方法,使用触发器。但是由于时间原因我们并未使用这种方法,中国知网可以搜到不少相关的论文,大家可以研究一下。

此外我们还有一个预备方案,就是在执行数据库操作时,将同一语句在两个数据库中各执行一遍。这种同步比较囧,但是还是能解决问题的。

数据库的订阅与发布:http://blog.csdn.net/hanchaoqi/article/details/8513656

后来我们使用的方法是内外网共用一台数据库,在网闸中为外网服务器IP开通一个连接端口,可以使外网访问到内网的数据库。内网和外网共用一台数据库就不存在数据库的同步问题了,这样使我们的开发工作简单了不少。

你可能感兴趣的:(.NET开发,数据库)