第 05 周 技术选型 -02 学习总结

发布于: 2020 年 07 月 15 日
第05周 技术选型-02 学习总结
  1. 面试题什么是一致性Hash?

- 用途 : 是分布式缓存集群中用来解决,当集群扩容后数据访问不一致的问题.

- 实现 :

- 先建立一个2^23^大的一个环.

- 将服务器节点的若干虚拟节点的Hash值放在这个环上.

- 将要查找的Key的Hash值也放在这个环上.

- 沿着环顺时针查找离它最近的服务节点.

  1. MySQL 复制

- 主从复制

- 用来做读写分离,提升性能,减低压力

- 主主复制

- 解决数据库服务器失效问题,提升高可用.

  1. 数据分片 解决单表大的问题

  1. 先做业务分库.在做主主复制,主从复制.在做数据库分片

  1. CAP 原理

- C 一致性

- 一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误( Every readreceives the most recent write or an error),而不是过期数据,也就是说,数据是一致的

- A 可用性

- 可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的( Every request receives a( non-error)response, without the guarantee that it contains the most recent write),也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的。

- P 分区耐受性

- 分区耐受性说,即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的( The system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes)

  1. CAP 原理

- CAP 无法同时满足.

- CAP 中 C 与 A 是矛盾的.

  1. CAP 原理 更准确的说法是,在分布式系统必须要满足分区耐受性的前提下

可用性和一致性无法同时满足。

  1. CAP原理与数据一致性冲突.

  1. 最终一致性

- 最终用户拿到数据是一致的.

  1. 最终一致性写冲突(如何达成最终一致性)

- 简单冲突处理策略:根据时间戳,最后写入覆盖。

- 客户端冲突解决

- 投票解决冲突(Cassandra)

  1. Cassandra 架构

- 连接任意节点,节点计算要写入的其它节点.如果3个有2个写入成功则成功.查询时有2个节点是一致的就返回.如果不相同则都拿出来投票决定.

  1. Hbase架构

- HRegion 使用HDFS 存储多份保证数据高可用.

  1. HBBase 存储结构 : Log Structed Merge Tree( LSM 树)

- 与Mysql(B+Tree )对比

- 解决HDFS不能修改问题

- 写入性能好

  1. ACID 关系型数据库

- 原子性(A)

- 隔离性(I)

- 持久性(D)

- 一致性 ©

  1. BASE 非关系型数据库

- 基本可用(BA)

- 软状态(s)

- 最终一致性(E)

  1. 分布式系统关键技术点

- 路由选择

- 集群扩容

- 可用性

  1. 分布式一致性算法Paxos

- 三个角色

- Proccess

- Acceptor

- Learner

- 三个阶段

- Prepare 阶段

- Accept 阶段

- Learn 阶段

  1. Zookeeper 应用场景

- 配置管理

- 选Master

- 集群管理(负载均衡与失效转移)

  1. 如何引进新技术?

- 把握住问题

- 要解决什么问题?是不是痛点?

用户头像

Jaye

关注

还未添加个人签名 2018.01.23 加入

还未添加个人简介

评论

发布
暂无评论
第05周 技术选型-02 学习总结