• 分布式站点数据同步机制的设计与实现[出自别处]


    摘要:在互联网蓬勃发展的今天,把集团公司下的各个水电站的数据同步起来,统一管理的需求日益突显。本公司首先采用了oracle公司自身提供的解决方案高级复制技术,但限于本国网速缓慢网络时常断线的不稳定的状态的特殊国情,实施效果不尽如人意。针对我国苛刻的网络条件,本公司努力研发,自主地设计了一套低网速数据同步系统比较妥当地解决了数据同步的相关问题,取得了较好的经济效益与社会效益。

    正文: 水电的集团公司为了提高公司的信息化水平,为了能够及时获得准确的施工与生产的相关信息,为公司的科学决策提供依据,决定统一管理集团旗下的各个水电站的数据。具体任务则交给了本公司来具体实施。实施的结果得到了业主和最终用户的认可,并认为该技术与经验值得普及与推广。
      下面针对低网速数据同步系统的开发,简要介绍一下;
    一问题分析。
    在与业主充分地沟通,调研了业主的实际业务需求之后,结合目前的网络现状,经过了与业主的多次的讨论与确认,双方一致确认一天同步一次为妥。确保公司总部能够了解到前一天各电站的施工或者是生产现状。需要解决的主要的技术问题有如下几个:
    1。如实地,一丝不苟地记录每个电站的一天内数据的增加,修改,删除等改变的信息。
    2。各电站的数据都是由两部分组成的。包括系统数据和业务数据。系统数据是各个电站共同使用的数据,业务数据是由各个电站单独使用。需要解决的是各个电站同一天内修改了相同的系统数据的冲突问题。
    3。如何把大量的日志信息,精确无误地从各个电站站点传输到公司总部的中心站点,因为网速很慢及网络不稳定的现状,这一问题成为系统成败的关键所在。
    4。在同步执行进,遇到了无法解决的冲突时,如何处理,如何提示系统的实施人员来处理问题。

    二系统设计

    针对上述问题,低网速数据同步系统可以划分为相互关联,又彼此比较独立的五个子系统。它们是日志记录子系统,冲突解决的配置子系统,日志上传子系统,同步执行子系统,同步调度子系统。下面逐一介绍各个子系统。

    1。日志记录子系统

    在业务系统运行时,由该子系统自动地记录数据库的数据的改变的日志信息。在一天结束时,与数据库自身的日志记录进行对比,验证。如果验证通过,则接下来的任务,由上传子系统来完成。如果没有通过验证,则通过数据库现有的状态与昨天的此时的数据库的快照状态进行计算纠错。

    2。冲突解决的配置子系统

    该子系统会产生数据量很大的,十分详尽的配置项,结果以XML格式的文件的形式保存在中心站点供同步执行子系统查询和应用。

    3。日志上传的子系统。
    在日志上传前先压缩,上传后解压缩,采用FTP协议上传并配置上断点续传的功能,解压缩后,进行MD5的计算与验证保证文件上传前后的文件完整性与一致性。该文件供同步执行子系统使用。

    4。同步执行子系统。

    该子系统在中心站点重现各电站子站点一天以来的各种数据库的操作。有了冲突,则读取配置文件中的配置项,按照预选配置好的冲突解决策略,进行处理冲突,如以某个站点的数据为准。以最新的操作时间的为准,以令牌环的方式哪个电站持有锁则以哪个电站的数据修改为有效。对于冲突的解决情况及未能找到适合的配置项而不能处理的情况,一律记录下来,以邮件的形式发给系统的实施人员进行分析及后续的处理。

    5。同步调度的子系统。

    由该子系统来总体控制同步的进程。

    三系统实现

    公司对该系统的开发十分重视,从各个部门抽调了技术骨干力量组成了项目开发小组,其中项目经理一人,系统分析师二人,系统构架师一人,程序员十人,测试员三人,实施员二人,文员一人。

    该系统历时半年的开发上线。试运行了三个月,解决了一些技术问题后,通过了初验,又稳定地运行了半年后,系统通过了终审验收。

    该系统的实现涉及的技术复杂而且广泛,如JAVA程序设计技术,oracle数据库的管理技术,FTP协议等网络技术,压缩与解压缩等数学算法技术等,在公司领导的亲切关怀与正确领导下,在项目组全体成员的共同努力下,在相关部门的密切地协作与配合下,在业主的大力支持下,最终取得了令人比较满意的成果。

    作者:gggwfn1982
    来源:CSDN
    原文:https://blog.csdn.net/gggwfn1982/article/details/81675509

  • 相关阅读:
    Windows Internals 笔记——作业
    Windows Internals 笔记——终止进程
    数据结构与算法-java-数组实现队列和栈
    数据结构与算法-java-稀疏数组
    学习笔记-java两种核心机制-JVM和GC
    python-Django-学习笔记
    python爬虫-大二时候的学习笔记
    KMP算法
    Docker
    排序与查找
  • 原文地址:https://www.cnblogs.com/swneng/p/10086646.html
Copyright © 2020-2023  润新知