分布式系统
46 篇笔记
- 4.6 分布式系统复制架构historical
1. 是什么 - 一般副本中有两种角色 - Leader:负责处理客户端的写入请求 - Follower:从Leader同步数据,可以处理客户端的读取请求 2. 分类 2.1. Leader-Follower 分布式系统复制架构之主从复制.md 2.2. Leader-Leader 分布式系统复制架
- 5.分布式系统分区historical
1. 什么是分区 - 将一份数据分割成多份,保存在不同节点上 - 有两层映射 - 从数据中取出一个字段作为key,然后将key- partition - 接着将partition- machine/node 2. 为什么需要分区 - 数据量太大无法在一个节点存储,需要分散存储 - 数据分散在多个节点
- 5.1 分布式系统分区之数据拆分historical
把 key 尽量平均分配到各个 partition/node 上 1. 拆分key的选择 1.1. 主键ID 比如自增主键。优点是数据分布均匀,缺点是根据业务字段查询慢时需要读取所有分区 1.2. 业务ID 比如用户ID、商品ID等。优点是根据业务字段查询快,缺点是数据分布可能不均匀 1.3. 举例
- 5.2 分布式系统分区之请求处理historical
路由组件把客户端的读写请求,路由到相应partition所在的node 1. 路由组件 路由组件 2. 请求处理 2.1. 新增数据 1. 客户端生成包含sharding key的数据 2. 客户端把新增请求发送给路由组件 3. 路由组件根据sharding key转发到相应的节点 4. 节点新增数
- 5.3 分布式系统分区之路由组件historical
1. client - 客户端本地保存了分区和服务器节点的关系,直接请求到正确的节点 2. proxy - 客户端请求路由层,由路由层负责转发请求到正确的节点 3. server - 客户端请求任意服务器节点,由该服务器节点负责转发请求到正确的节点 4. 举例 - MySQL使用proxy或者cli
- 5.4 分布式系统分区之分区分配historical
把 partition/node 尽量平均分配到各个 machine 上 1. 分配方式 1.1. 静态分配 创建远超machine数目的node, 优点:迁移node到其他machine时,集群可以对外响应 缺点:machine最大数目是固定的 1.2. 动态分配 各个node相互协调,各自负责一