架构师训练营 - 第五周
作业一:
用你熟悉的编程语言实现一致性 hash 算法。
作业二:根据当周学习情况,完成一篇学习总结
一、缓存
缓存数据通常来自于内存,比磁盘上的数据有更快的访问速度。
缓存存储数据的最终结果形态,不需要中间计算,减少 CPU 资源的消耗。
缓存降低数据库、磁盘、网络的负载压力,使这些 I/O 设备获得更好的响应特性。
缓存的优点:
支持大数据量存储,不受应用进程重启影响;
数据集中存储,保证数据一致性;
数据读写分离,高性能,高可用;
缓存的常见问题:
缓存击穿(更新缓存时使用分布式锁锁住服务,防止请求穿透直达 DB);
缓存穿透(放入一个特殊对象);
缓存雪崩(缓存时间使用基本时间加上随机时间)。
二、消息队列,异步框架
消息队列调用架构:
点对点模型
发布订阅模型
消息队的优点:
对结构复杂、设计系统多的操作进行解耦操作,降低系统的操作复杂度、降低系统的维护成本;
对一个可以进行异步操作的一些系统操作进行异步,减小操作的响应时间,提供更好的用户体验;
可对高流量进行削峰,保证系统的平稳运行。
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题
实现高性能,高可用,可伸缩和最终一致性架构
使用较多的消息队列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,RocketMQ
三、负载均衡
反向代理负载均衡
IP 层的负载均衡
数据链路层负载均衡
四、数据库
MySQL 主从复制、主主复制的原理如下:
主从复制,通过主服务器对数据库的操作写 BinLog,从而通知到从服务器,写服务器的 RelayLog。异步通知从 DB 根据 RelayLog 进行 SQL 执行。通过多台从服务器,从而提供多台对外的数据读取服务。
主主复制,不会两台主 DB 同时写,避免数据冲突。每台 BinLog 都是接收直接的数据库操作;而 Relay Log 负责从另一台操作读取同步信息。
评论