分布式数据库问题,如何保证数据一致性?

天才小鱼 2012-08-10 11:33:32
大家好,我现在做了一个系统,目前是采用分布式部署,最上面有一个服务器存储了所有的数据,该服务器下面还有几十个节点服务器存储自己的数据,现在需要对数据库做同步。数据库用的是mysql,而mysql的replication机制好像不能解决这种架构的数据同步问题,只有自己通过程序来实现。

同步分为:
1)即时同步,这个目前是通过调用RPC接口来完成的,节点服务器每一个UPDATE操作,都调用一次接口
2)定时同步,现在采用的是每天定时通过tcp socket来同步,节点服务器先查询出自上一次同步完成后的所有数据,使用JSON方式将所有数据记录通过SOCKET传递至上级服务器,上级服务器接受到以后,进行比较,然后将需要节点服务器更新的记录返回,节点服务器再做更新,这样就完成了一次一个节点服务器与上级服务器的数据定时同步过程。
但是如果在同步过程中有新的记录插入或更新,那么会导致数据不一致的现象,我能想到的解决方法是在同步过程中服务器禁止禁止访问,同步完成后才允许访问。顶级服务器及的同步采用synchorized锁,每次只允许一个节点服务器与其做同步。

还有没有更好的解决方案呢?有没有同学做过这方面,请不啬赐教!
...全文
504 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxw000 2012-08-10
  • 打赏
  • 举报
回复
分布式事务,这个有很多解决方案!

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧