写点什么

架构师训练营大作业二

用户头像
kawayi
关注
发布于: 2021 年 01 月 10 日

构师训练营知识点

缓存

缓存定义

介于数据访问者和数据源之间的一种高速存储,数据需要多次读取时,可以加快读取速度

有哪些缓存

CPU 缓存

操作系统缓存

数据库缓存

JVM 编译缓存

CDN 缓存

代理与反向代理缓存

前端缓存

应用程序缓存

分布式对象缓存

缓存的关键指标

缓存命中率

定义:缓存是否有效依赖于能多少次重用同一个缓存响应业务请求

影响缓存命中率的主要指标

缓存键集合大小

键数量越少,缓存效率越高

缓存可使用内存空间

内存中缓存的对象越多,缓存命中率越高

缓存对象生存时间

对象缓存时间越长,被重用的可能性越高

缓存类型

通读缓存

给客户端返回缓存资源,请求未命中缓存时获取真实数据。客户端连接的是通读缓存

代理缓存、反向代理缓存、CDN 缓存

旁路缓存

应用访问缓存,如果存在,则返回,如果不存在或者过期,则应用主动创建缓存,保存在缓存中并返回

对象缓存

浏览器对象缓存

本地对象缓存

分布式缓存

Memcached 分布式对象缓存

分布式对象缓存的一致性 hash 算法

一致性 hash 节点扩容

基于虚拟节点的一致性 hash 算法

缓存的优点

显著提升性能

通常来自内存,比磁盘快

结果数据,不需要中间计算

降低数据库、磁盘和网络负载

系统性能优化的大杀器

缓存使用注意问题

频繁修改数据:数据读写 2:1 以上,缓存才有意义

没有热点的访问:数据访问不遵循二八原则

数据不一致与脏读

缓存雪崩

缓存预热

缓存穿透

负载均衡架构

类型

HTTP 重定向负载均衡

DNS 负载均衡

反向代理负载均衡

数据链路层负载均衡

算法

轮询

加权轮询

随机

最小连接

源地址散列

消息队列与异步架构

基本组成

消息生产者

消息队列

消息消费者

架构

点对点模型

发布订阅模型

消息队列的优点

异步处理、提升处理性能

伸缩性更好

削峰平谷

失败隔离和自我恢复

解耦

事件驱动架构 EDA

主要 MQ 产品比较

RabbitMQ 性能好、社区活跃。Erlang 开发,不熟悉的人不利于二次开发维护

ActiveMQ 可以跨平台,对 Java 友好

RocketMQ 性能好,可靠性高,Java 开发

Kafka 针对分布式场景做了专门优化,分布式伸缩性好

分布式数据库

MySQL

主从复制

一主多从:分摊负载、专机专用、便于冷备、高可用

主主复制

主主失效恢复

复制注意事项

主主复制时不能并发写入

复制只是增加读并发,并没有增加写并发和存储能力

更新表结构会导致很大的同步延迟

数据分片

方法

硬编码分片

映射表外部存储

挑战

大量额外代码,处理逻辑复杂

多分片的联合查询困难

无法使用数据库事务

如何扩容

分布式数据库中间件

MyCat

Amoeba/Cobar

数据库部署方案

单一服务与单一数据库

主从复制实现伸缩

两个 Web 服务及两个数据库

综合部署

NoSQL

CAP 原理:可用性、一致性、分区容错性,三者只能同时满足两个。更准确说是,分布式系统必须满足分区容错性,所以可用性和一致性无法同时满足

一致性 Consistency:每次读取的是最新写入的数据或者得到一个错误

可用性 Availability:每次请求都能得到响应,而不是无响应或者错误。响应并不要求是最新数据

分区容错性 Partition tolerance:即便因为网络原因导致服务器节点之间丢失消息或延迟,系统依然是可以操作的

CAP 与数据一致性的冲突

最终一致性

冲突解决策略,最后写入的覆盖

客户端解决冲突

投票解决冲突

方案

Cassandra 分布式解决方案

HBase

LSM

ACID

原子性 Atomicity:事务要么全部完成,要么全部取消

隔离性 Isolation:两个事务之间数据的可见性

持久性 Durability:事务提交,不管发生什么,数据要保存

一致性 Consistency:只有符合关系约束和函数约束的数据才能写入

BASE

基本可用 Basically Available:系统在遇到故障时,允许损失部分可用性

弱状态 Soft state:允许系统中的数据存在中间状态,并认为该状态不影响系统整体可用性

最终一致性 Eventually consistent:系统中所有的数据副本,在经过一段时间后最终能达到一致的状态

分布式一致 ZooKeeper

作者:kafkaliu

链接:https://www.jianshu.com/p/8f4fb8bd682d

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



用户头像

kawayi

关注

还未添加个人签名 2019.01.12 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营大作业二