【架构师训练营 - week6 -2】总结
分布式数据库面临的问题
1.主主复制的两个数据库不能并发写入
2.复制增加了了读并发能力,不能增加写并发和存储能力
3.更新表结构将造成巨大延时。
解决方法
分片:使用硬编码的方式;使用外部映射表;使用中间件
Cobar是一个分布式关系数据库访问代理,介于应用服务器和数据库服务器之间(Cobar也支持非独立部署,以lib的方式和应用程序部署在一起)。应用程序通过JDBC驱动访问Cobar集群,Cobar服务器根据SQL和分库规则分解SQL,分发到MySQL集群不同的数据库实例上执行(每个MySQL实例都部署为主/从结构,保证数据高可用)。
Cobar利用了MySQL的数据同步功能进行数据迁移。数据迁移不是以数据为单位,而是以Schema为单位。在Cobar集群初始化时,在每个MySQL实例创建多个Schema(根据业务远景规划未来集群规模,如集群最大规模为1000台数据库服务器,那么总的初始Schema数≥1000)。集群扩容的时候,从每个服务器中迁移部分Schema到新机器中,由于迁移以Schema为单位,迁移过程可以使用MySQL的同步机制。
对于一个数据存储系统而言,高可用意味着两个意思:
高可用的服务:任何时候,包括宕机、硬盘损坏、系统升级、停机维护、集群扩容等各种情况,都可以对系统进行读写访问操作。
高可靠的数据:任何情况下,数据可靠存储,不丢失。
Dories
系统整体上可分为如下三个部分。
应用程序服务器:它们是存储系统的客户,对系统发起数据操作请求。
数据存储服务器:他们是存储系统的核心,负责存储数据、响应应用服务器的数据操作请求。
管理中心服务器:这是一个由两台机器组成的主-主热备的小规模服务器集群,主要负责集群管理,对数据存储集群进行健康心跳检测;集群扩容、故障恢复管理;对应用程序服务器提供集群地址配置信息服务等。
评论