6.2 分布式关系数据库 (下)
1.分布式数据库中间件
1.连接:应用通过 jdbc 等连接到 Mycat 数据库中间件
2.分片:MyCat 实现数据库分片,示例中:分片逻辑,根据省份分片,数据库 1 存放省份是 wuhan 的数据,数据库 2 存放 sh 上海的数据,数据库 3 存放 bj 北京的数据。
3.解析:解析 SQL 请求请求内容(prov='wuhan')
4.路由选择:将 SQL 路由到目标数据库服务器(dn1)去处理。
5.聚合:dn1 数据库返回结果给 MyCat,Mycat 聚合结果作为整体,发送给应用程序。
分片逻辑由 Mycat 负责:Mycat 接收请求,并路由到目标服务器。应用程序连接到 Mycat,就像连接到普通数据库。
====>应用程序不需要关注分片逻辑。应用程序和分片逻辑解除耦合。
分布式数据库中间件的设计原理:相似。
2.分布式数据库中间件-Cobar 架构
路由配置示例:
3.如何做集群伸缩
解析:新增数据库服务器时,新服务器时空白的,没有数据。===>要把其他服务器上的数据迁移一部分到新服务器上。如何迁移?
解决方法:预估数据库服务器集群较大规模数量,比如将来数据库服务器规模达到 100 台。
路由计算时,对 100 取模。比如:hash(id) mod 100=[0-99]
路由配置 100 个规则,数据库配置 100 个连接(实际只有两台服务器)
===>启动时,启动 100 个数据库实例,分配 100 个数据库实例到 2 台服务器,每台 50 个实例(一致性哈市算法:虚拟节点<===>物理节点)。
迁移操作:1.增加一台数据库服务器。
2.主从设置:原 MySQL 服务器 1==>设置 15 个主库===>新服务器 15 个从库;
原 MySQL 服务器 2==>设置 15 个主库===>新服务器 15 个从库;
原 MySQL 服务器 3==>设置 15 个主库===>新服务器 15 个从库;
3.主从复制:主从同步数据。
4.更新规则:调整数据库连接到新的服务器上。
4.数据库部署方案-单一服务与单一数据库
评论