学习总结之分布式数据库

用户头像
幸福小子
关注
发布于: 2020 年 11 月 29 日

分布式数据库

在大型网站的实际应用中,做了主从负载,分库后由于一些单表数据量仍然很大,读写性能还是很差,需要引入分片技术,将大表拆成多张小表,分布在不同schema或数据库实例中。

目前主流支持分片的分布式关系数据库产品有Cobar,mycat,dble等,现在以Cobar为例总结下分布式原理和扩容

1).工作原理:

Cobar是分布式关系数据库访问代理,介于应用服务器与数据库服务器之间,应用程序通过jdbc驱动访问cobar集群,cobar服务器根据sql和分库规则分解sql,分发不到mysql集群的不同数据库实例上执行,执行后结果返回至sql执行模块,通过结果合并模块将返回多个结果合并后的结果集到应用程序,完成在分布式数据库上的一次访问。



 

2) .扩容

Mysql中要想保证扩容后数据一致负载均衡,必须做数据迁移,将集群中原来机器的数据迁移到新加的机器中,具体迁移哪些数据可以利用一致性Hash算法,尽量迁移少量的数据,另外需要保证在迁移过程中数据的一致性,可访问性。为解决这个问题cobar的解决方案是利用mysql的数据同步功能进行迁移,数据迁移不是以数据为单位而是以schema为单位,即在cobar集群初始化时,根据业务未来可达到的规模进行集群规划,比如未来业务的增长规模为1000台数据库即可支撑,那在最初初始化的时候上设定的总schema数需要>=1000个,这样扩容是只需要从每台服务器迁移部分schema到新的机器,迁移过程可以使用mysql的同步机制,同步完成后,即新机器中schema和其他机器的schema数一致时,修改cobar服务器的路由配置,只需要修改schema的ip到新ip地址即可,验证无误后删除原机器中的schema,即完成mysql的扩容。





用户头像

幸福小子

关注

还未添加个人签名 2018.11.08 加入

还未添加个人简介

评论

发布
暂无评论
学习总结之分布式数据库