利用时间戳来同步文件配置的一个问题!
两台设备分别是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设备的时间不同导致的这个问题?
不一定非要用时间戳,给个思路即可
螃蟹009 发表于 2015-09-16 19:29 static/image/common/back.gif
两台设备分别是A、BA与B之间会同步配置
A如果做server 角色 B做client角色
为啥要比较时间戳,同步期间不允许修改,或者写到临时文件,进入临时消息队列 真实需求是怎样的?一切以A的配置为准不就简单了么 回复 2# 流氓无产者
A如果修改了文件,并且B中没有修改,那么B就从A同步
A如果修改了文件,并且B也修改了文件,就要比较AB的文件谁的更新,如果B的新,那么就不去同步了
这时候就要比较修改时间了,原来的方案就是比较时间戳,这个同步可以看作是实时的
螃蟹009 发表于 2015-09-17 12:31 static/image/common/back.gif
回复 2# 流氓无产者
比较AB的文件谁的更新
你都决定这样用了
回复 3# hellioncu
不能完全以A为准,例如一个管理员甲在配置完A后,B被同步了,
几天后,甲乙管理员在对方都不知情的情况下,乙管理员认为当前B上这份配置不错,可以在这个基础上添加一些B特有的东西
甲管理员认为A这台配置不完善,然后想要将A设备的配置加一些,如果A先改了配置,一分钟后,B改了配置,假设再一分钟后A、B进行同步的探测,
B发现A的配置虽然改了,但是没有B的新,所以他就不去同步A的配置 螃蟹009 发表于 2015-09-17 12:41 static/image/common/back.gif
回复 3# hellioncu
如果A再更新了一次,是不是就可以把B同步了,会覆盖掉B所做的修改,这不是你所期望的吧。 这是个管理问题,为啥一定要搞两个,同步来同不去的人为制造混乱;
管理员B 不允许修改配置文件,如果想修改发 patch 给管理员A,统一由A修改。
或者配置文件用git管理,修改之后commit 楼主可不可以增加一个配置文件 专门放置版本号A更新了之后 更新A本地的版本号 B再读取B本地的版本号如果B最新 则不同步, 否则同步。这样可否?
页:
[1]