架构师训练营 第 6 周总结

用户头像
Lingjun
关注
发布于: 2020 年 07 月 14 日

本周学习重点知识点:

  • CAP原理

  • 分布式数据一致性

  • Doris NoSQL 分布式数据库案例分析

  • 分布式一致性算法(Paxos、Zab)

  • ZooKeeper



一致性哈希总结:

什么是一致性哈希?

一致性哈希是用来在分布式缓存集群中,当扩容缓存服务器时,解决数据访问不一致的问题。



核心算法:

  1. 构建 2^32 的整数哈希环

  2. 将服务器节点的虚拟节点放到环上

  3. 将缓存数据的 key 的哈希值也放到环上

  4. 顺时针查找节点,并根据虚拟节点对应到实际服务器节点



数据库增加服务器扩容如何解决?

  • 根据需求事先评估需要的数据分片,定义好足够多的 schema(数据库)

  • 多个 schema(数据库) 放在同一台服务器上

  • 当扩容服务器的时候,只需要将 schema 的 data 文件复制到新的服务器即可,具体迁移过程如下:

  • 将 schema 的 data 文件复制到新的服务器

  • 随后通过主从复制,逐步让新的服务器追上并和原来的服务器保持一致

  • 数据一致后,修改数据分片的路由(修改数据库uri即可)

  • 最后再销毁原来服务器上的 schema



由Doris案例联想到分布式KV数据库的实现几个考虑点:

  1. 单机KV存储引擎的选择,可以考虑RocksDB

  2. 扩容支持,考虑数据存储的分布规则,例如TiKV中基于Region的分布规则

  3. 路由规则,如何将Region均匀地分布到节点上

  4. 高可用,可以借助分布式一致性算法实现节点复制,例如实现raft算法

一些学习感悟:

只是会使用这些框架,在一定程度上可以解决日常业务问题。但是,如果对自己有更高的要求,那么要想办法能自己开发,能做出这样的框架,这样才能有机会到达下一个层次。在看框架代码时,要站在和框架作者一个水平线上,去思考如何做出这样一个框架,而不仅仅是去学习框架的使用。



如果有一个很有创新性的想法,如何获得老板、同事的支持?

  • 做不挣钱的框架,如何向公司传递信息,如何让公司支持你

  • 如何做出特色

方案需要有创新性,要能打动人

目标要有吸引力,并且是能达成的

一定要自己争取,而不是等待别人来提需求



生活、工作、学习都有关键点,找到那个关键点,就可以事半功倍



发布于: 2020 年 07 月 14 日 阅读数: 59
用户头像

Lingjun

关注

还未添加个人签名 2018.11.22 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 第 6 周总结