【架构师训练营 - 周总结 -5】

用户头像
小动物
关注
发布于: 2020 年 07 月 07 日

这周讲了缓存、消息队列、异步调用、负载均衡、分布式数据库。



缓存

缓存的出现,主要就是解决对数据的快速读取,减少重复的计算,降低服务器资源使用。如在CDN上缓存静态页面资源可以有效的降低应用服务器网络IO的使用。



基于缓存作用的场景,缓存的命中率为主要性能指标。能够帮助应用服务器拦截越多的重复请求,那么其能力越强。为了达到较高的缓存命中率,除了需要一定的算法支撑缓存服务器在自身的数据集中查找缓存外。还应该平衡缓存覆盖面与缓存集合大小,如缓存热点数据。



缓存终归是缓存,使用时不能偏离其核心作用。如对其修改,虽然可行,但偏离初衷。职责单一。



消息队列,异步框架



生产者消费者模型使用队列将生产者和消费者解耦,生产者只需要负责生产事件,无需等待处理结果,提升了服务器的吞吐量。同时消费者也无需实时返回生产者处理结果,按需处理事件,在保证了消费者服务器安全的同时也提升了事件处理的成功率。



市面上的队列产品很多,各产品的优缺点不一,应根据实际场景使用



在该模型下,生产者不会同步等待处理结果,需要通过异步的方式告知生产者处理结果(如果需要)。



同时,该模型毕竟增加了一个节点(队列),增加了故障率。需要考虑引入队列后带来的其他问题。如延时、数据丢失



负载均衡

集群部署除了保障可用性外,同时也希望能够集合多台服务器的能力提供更强吞吐量。保证每台服务器的负载基本一致就是负载均衡。



上面提到的消息队列其实也是一种负载均衡,各服务器根据自身的能力来消费事件,难出现有服务器忙死有的闲死的情况。



但负载均衡更多的体现在网络请求上。HTTP负载均衡、DNS负载均衡、IP负载均衡等作用在网络传输不同层上达到了负载均衡的效果。



负载均衡的目的时达到负载均衡,若算法出现问题,导致负载不均衡可能会导致灾难性的后果。



分布式数据库

暂只提及了一主多从、多主(不推荐)。

读写分离,保障主流程的写,对读操作使用另一台服务器保障快速读取,且与写操作不互相影响。



主从间数据同步的实现方式会影响实际业务中读的时效性,如mysql的处理机制天然的存在一定的延时。但若如Kafka则提供了选项保证主从间数据一致性(可选)。



这次的总结,感觉,没写什么东西,有些流水账了。

发布于: 2020 年 07 月 07 日 阅读数: 42
用户头像

小动物

关注

还未添加个人签名 2017.12.12 加入

还未添加个人简介

评论

发布
暂无评论
【架构师训练营 - 周总结 -5】