架构师训练营第六周学习总结

用户头像
张明森
关注
发布于: 2020 年 07 月 12 日

1.一致性哈希算法

解决什么问题?解决在集群中增减节点导致Hash值改变,产生的节点映射大量失效的情况。

如何实现?1.构造一个2^32-1的环;2.服务器节点的虚拟节点放到环上;3.数据key放到环上,顺时针寻找最近的虚拟节点;

2.分布式数据库

主从复制:读写分离

主主复制:数据库失效;同时只能写一个

数据分片:数据量大、写操作大;分表

1.数据库硬编码实现;不灵活

2.映射表外部存储;映射表数据量大

3.分布式数据库中间件Mycat

SQL解析->SQL路由->SQL执行

集群伸缩:需要做数据迁移;迁移数据库实例

部署方案

单一部署->主从复制->业务分库->数据库分片

3.NOSQL

CAP

一致性:数据不返回(返回错误)或者数据返回且返回的数据是最近写入的数据

可用性:每次读写都应有响应(数据,非错误),数据不一定是最新的数据

分区耐受:网络分区出问题时,服务器节点之间通信受影响时,系统仍然可用

满足分区耐受性时,一致性和可用性无法同时满足

最终一致性

1.根据时间戳,最后写入覆盖;时间戳一致性

2.客户端解决

3.投票解决数据一致性;多数成功

Hbase

Hbase结构

ZK:Master选举;

HMaster:用户管理请求;管理HRegisonServer;清理过期日志、文件

HRegisonServer:响应用户IO请求;BlockCache:读缓存;HLog:数据可靠性;主从复制

HRegison:数据表的分片

HDFS:存储实际数据

ACID与BASE

ACID:原子性、隔离性、持久性、一致性

BASE:基本可用(可以损失部分可用性)、软状态(数据存在中间状态,不影响用户使用)、最终一致性



4.Doris

如何做的更好;如何获取公司的支持

如何获取公司的支持?

1.当前现状(存在的问题);

2.产品定位、要解决的问题;

3.产品目标(有吸引力、不是吹牛能落地)

4.架构设计:逻辑架构、概念模型、数据分区(基于虚拟节点的分区算法)、访问架构(高可用)

5.关键技术点:可用性(瞬时失效、临时失效、永久失效)

6.详细计划:人、时间

7.专利

5.Zookeeper

脑裂

在一个高可用系统中,当联系着的节点断开联系时,本来为一个整体的系统,分裂成两个独立节点,两个节点开始争抢共享资源造成系统混乱、数据损坏的现象,成为“脑裂”。

Paxos

三个角色:Proposer、Acceptor、Learner

三个阶段:Prepare阶段、Accept阶段、:Learn阶段

两个承诺,一个应答:

两个承诺:

  1. 不再接受Proposal ID小于等于(注意:这里是<= )当前请求的Prepare请求。

  2. 不再接受Proposal ID小于(注意:这里是< )当前请求的Propose请求。

一个应答:

不违背以前作出的承诺下,回复已经Accept过的提案中Proposal ID最大的那个提案的Value和Proposal ID,没有则返回空值。

Zab协议

两种基本模式 :消息广播和崩溃恢复

ZooKeeper架构



技术之外:

1.自己主动争取机会,而不是等待别人分配有价值的工作机会。

2.抓住技术的关键点



用户头像

张明森

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

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