水区程序员多,问个解决方案

  • 暗蛹
    单位内外网,现在需要把单位内网的一些服务发布到外网供他人调用。内外网之间有一个伟思科技的网闸,出于安全考虑,只允许使用网闸的文件摆渡功能做数据交换,不允许映射端口直接把内网服务的端口让外网调用。做成内外网双数据库的方式,数据同步又是大问题。因为内网的排班数据一旦变动就影响外网的预约数据,而且预约数据内外网都有可能变更,可能需要双向数据同步……

    我现在头大死了,内外网各放了一个自己写的定时任务处理器和文件监控处理器做数据文件同步,勉强能达到要求。

    请教一下,这种情况有没有什么更好的解决方案?或者说有好的网闸能解决这个问题。最好不要双数据库,因为数据同步太麻烦需要考虑的东西太多而且还不一定稳定。
  • 2
    20060602
    底端码农看不懂,帮顶一下
  • F
    Flatfish
    有网闸知足吧!

    我只能用刻录盘传数据……233333
  • j
    jerrymumu
    实话实说,这个问题不一定是靠码农去解决,个人认为应从网络架构和设备层面着手寻找是否有更好的解决方案。
  • 暗蛹
    这是我写的最不靠谱的一个项目了,到时候出任何问题我都不会惊讶……
  • 总是注册不成功
    你把服务器放外网,内网有啥变化调用外网的api通知外网服务器。
  • 一只纯猪头
    记住了
    任何技术上的扭曲的实现定然是需求出现了问题...

    数据同步只能用文件实现...你这已经足够扭曲了...
    我不理解网闸这种东西有什么存在的价值
  • m
    miomibuya
    网闸有多种类型

    其中有数据库同步的类型

    内网 外网部署一套数据库

    内网数据库单向同步 外网数据库

    外网数据供查询调用

    这种在政府内外网隔离常见了
  • 暗蛹
    网闸这玩意就是公安部用来喂开发人员吃屎的,怕内网涉密信息泄露什么的,但是尼玛tg自己涉密信息不还是天天泄露,随便一个高官叛变,分分钟爆你菊花。
  • 暗蛹
    网闸公司有数据库同步程序,但是要求至少一端要开数据库通讯端口,这就tmd不符合安全要求,全tmd否决啊……
  • n
    neddonkey
    核心问题其实是双向同步,这个业务需求处理清楚,再考虑网络交换的问题。
    双向同步是对不对的问题,数据交换方式是快不快的问题。
  • n
    neddonkey
    如果同一数据在同一时间,内外网可同时修改,产生冲突,且没有优先级别,那这个在业务上就是不成立的。
    如果不存在冲突,可保证一致性,双向可分解为两个单向处理。

    这个问题必须优先解决。
  • 暗蛹
    现在是搞成异步处理的方式,外网发起的申请只告诉他审核中,然后等内网真正完成处理后再回写申请状态(失败或成功),不过这样用户体验不是很好,用户无法马上知晓自己的请求是否成功。
  • c
    cc0128
    赞, 这是码农能解决的方式..
    网闸啥, 其实不是码农的活....
  • t
    turtlet008
    把请求和回填的数据都做成xml文件通过网闸传到指定文件夹吧,不建议两个数据库同步,情愿速度慢点,万一同步出现问题哭都来不及
  • 暗蛹
    最早是用你说的单库模式,不过请求的速度最快都要2s,并发一大就超时了(我设置30请求没回应文件就返回超时)。在移动网络上体验更糟糕。结果就只好用双库的方式了。
  • h
    hermoss
    外网服务把request dump出来传给内网服务器然后内网服务器fork inode事件去处理。处理完把resopnse dump逆向传出去。
  • 暗蛹
    hermoss
    最早就是这么做的,无奈网闸速度慢,文件读写耗时长。
  • n
    neddonkey
    作为技术人员,把时间损耗分析清楚,给出专业答复即可。
    用单库还要两秒,问题应该是出在网闸的交换周期上,数据查询都是毫秒级的。
    需要评估出纯网闸交换的时间损耗多少,网闸不能换成支持数据库摆渡的,程序再优化也没用。
  • 蓝蓝的天
    以前也弄过一个类似的,其实这种东西根本没用。

    程序方面上面有人说过,有解决方案,但是还是太慢,要降低用户体验,不过既然是这种要求比较特殊的行业,能解释清楚应该问题也就不大了吧。
  • g
    godzillaqqq
    政府内部 清一色360 保密人员都应该吃枪子