架构师训练营 第 6 周总结
本周学习重点知识点:
CAP原理
分布式数据一致性
Doris NoSQL 分布式数据库案例分析
分布式一致性算法(Paxos、Zab)
ZooKeeper
一致性哈希总结:
什么是一致性哈希?
一致性哈希是用来在分布式缓存集群中,当扩容缓存服务器时,解决数据访问不一致的问题。
核心算法:
构建 2^32 的整数哈希环
将服务器节点的虚拟节点放到环上
将缓存数据的 key 的哈希值也放到环上
顺时针查找节点,并根据虚拟节点对应到实际服务器节点
数据库增加服务器扩容如何解决?
根据需求事先评估需要的数据分片,定义好足够多的 schema(数据库)
多个 schema(数据库) 放在同一台服务器上
当扩容服务器的时候,只需要将 schema 的 data 文件复制到新的服务器即可,具体迁移过程如下:
将 schema 的 data 文件复制到新的服务器
随后通过主从复制,逐步让新的服务器追上并和原来的服务器保持一致
数据一致后,修改数据分片的路由(修改数据库uri即可)
最后再销毁原来服务器上的 schema
由Doris案例联想到分布式KV数据库的实现几个考虑点:
单机KV存储引擎的选择,可以考虑RocksDB
扩容支持,考虑数据存储的分布规则,例如TiKV中基于Region的分布规则
路由规则,如何将Region均匀地分布到节点上
高可用,可以借助分布式一致性算法实现节点复制,例如实现raft算法
一些学习感悟:
只是会使用这些框架,在一定程度上可以解决日常业务问题。但是,如果对自己有更高的要求,那么要想办法能自己开发,能做出这样的框架,这样才能有机会到达下一个层次。在看框架代码时,要站在和框架作者一个水平线上,去思考如何做出这样一个框架,而不仅仅是去学习框架的使用。
如果有一个很有创新性的想法,如何获得老板、同事的支持?
做不挣钱的框架,如何向公司传递信息,如何让公司支持你
如何做出特色
方案需要有创新性,要能打动人
目标要有吸引力,并且是能达成的
一定要自己争取,而不是等待别人来提需求
生活、工作、学习都有关键点,找到那个关键点,就可以事半功倍
版权声明: 本文为 InfoQ 作者【Lingjun】的原创文章。
原文链接:【http://xie.infoq.cn/article/c0d2906bd4d930c5bc0b78cd8】。文章转载请联系作者。
评论