螃蟹009 发表于 2015-09-16 19:29

利用时间戳来同步文件配置的一个问题!

两台设备分别是A、BA与B之间会同步配置

A如果做server 角色 B做client角色
同步的规则是这样:假设
A配置文件的更改的时间戳为10:01
B配置文件的更改的时间戳为10:03

那么当10:05的时候 A向B发送消息,
B收到后比较A的时间戳与B的时间戳哪个更新
如果A的更新,那么将A的配置文件同步过来
如果B的更新,就不去同步A的配置文件

------------------------------------------------------

但是遇到了一个问题:
如果A、B两台设备的时间是不同的
例如:
A时间为10:00,B为12:00,
那么A在两小时内,A无论怎么改配置,他的时间戳都是小于12:00的,也就是说在此期间,A的配置无法被同步到B设备上面

不考虑同步两台设备时间的方法!因为A、B设备地域不同,比如一台在中国,一台在美国

请问大侠有没有什么好的方案来解决A、B设备的时间不同导致的这个问题?

不一定非要用时间戳,给个思路即可


流氓无产者 发表于 2015-09-17 09:29

螃蟹009 发表于 2015-09-16 19:29 static/image/common/back.gif
两台设备分别是A、BA与B之间会同步配置

A如果做server 角色 B做client角色

为啥要比较时间戳,同步期间不允许修改,或者写到临时文件,进入临时消息队列

hellioncu 发表于 2015-09-17 09:42

真实需求是怎样的?一切以A的配置为准不就简单了么

螃蟹009 发表于 2015-09-17 12:31

回复 2# 流氓无产者


    A如果修改了文件,并且B中没有修改,那么B就从A同步
    A如果修改了文件,并且B也修改了文件,就要比较AB的文件谁的更新,如果B的新,那么就不去同步了
    这时候就要比较修改时间了,原来的方案就是比较时间戳,这个同步可以看作是实时的

   

流氓无产者 发表于 2015-09-17 12:33

螃蟹009 发表于 2015-09-17 12:31 static/image/common/back.gif
回复 2# 流氓无产者

比较AB的文件谁的更新

你都决定这样用了

螃蟹009 发表于 2015-09-17 12:41

回复 3# hellioncu


   
不能完全以A为准,例如一个管理员甲在配置完A后,B被同步了,

几天后,甲乙管理员在对方都不知情的情况下,乙管理员认为当前B上这份配置不错,可以在这个基础上添加一些B特有的东西

甲管理员认为A这台配置不完善,然后想要将A设备的配置加一些,如果A先改了配置,一分钟后,B改了配置,假设再一分钟后A、B进行同步的探测,

B发现A的配置虽然改了,但是没有B的新,所以他就不去同步A的配置

hellioncu 发表于 2015-09-17 13:00

螃蟹009 发表于 2015-09-17 12:41 static/image/common/back.gif
回复 3# hellioncu




如果A再更新了一次,是不是就可以把B同步了,会覆盖掉B所做的修改,这不是你所期望的吧。

yjh777 发表于 2015-10-12 12:24

这是个管理问题,为啥一定要搞两个,同步来同不去的人为制造混乱;

管理员B 不允许修改配置文件,如果想修改发 patch 给管理员A,统一由A修改。
或者配置文件用git管理,修改之后commit

bubaixiaoxiong 发表于 2015-10-16 00:24

楼主可不可以增加一个配置文件 专门放置版本号A更新了之后 更新A本地的版本号 B再读取B本地的版本号如果B最新 则不同步, 否则同步。这样可否?
页: [1]
查看完整版本: 利用时间戳来同步文件配置的一个问题!