写点什么

架构师训练营第五周总结

用户头像
养乐多
关注
发布于: 2020 年 07 月 09 日
  1. 分布式缓存架构

  • 影响缓存命中率的主要指标:缓存键集合大小、缓存可使用内存空间、缓存对象生存时间

  • 一致性Hash算法,虚拟节点,保障分布式缓存的伸缩性

  • 缓存是系统性能优化的大杀器,合理使用缓存,针对热点数据进行缓存,缓存只有读操作,没有更新,通过失效删除

  • redis集群,把所有物理节点映射到16384个桶上,保存数据时,对key的hash值取模,找到物理节点进行存储



  1. 消息队列与异步架构

  • 主要提升写的性能,与之对应,缓存提升读的性能

  • 消息队列主要分为点对点模型、发布订阅模型,对于点对点模型,生产者将消息加入队列后,所有消费者只能消费一次,而发布订阅模型,生产者发布后,每个订阅的消费者都可以消费

  • 消息队列的好处:实现异步处理,提升处理性能;更好的伸缩性;削峰填谷;失败隔离和自我修复;解耦

  1. 负载均衡

  • 负载均衡的主要作用为提高网站的可用性

  • http重定向负载均衡:两次很重的http请求,性能不好,暴露应用服务器地址,不安全

  • DNS负载均衡:通过DNS添加多条A记录将域名映射到多个ip地址,实现负载

  • 反向代理负载均衡:第七层负载,解决了暴露应用服务器地址的不安全问题,主要问题在于并发大了有性能问题,http请求较重,全部交由反向代理服务器处理,会对反向代理服务造成很大压力,小型网站可以使用

  • ip负载均衡:第三层负载,主要思路为,访问时,经过负载均衡服务器,将请求目的ip(负载均衡服务器ip)改为应用服务器ip,返回数据时,应用服务器将目的地址(用户ip)改为负载均衡服务器ip,负载均衡服务器接到数据后,在把目的地址改为用户ip返回数据,解决了通过http请求负载,http请求较重问题,但是也有返回数据时,必须经过负载均衡服务器修改ip,负载均衡服务器压力还是较大

  • 数据链路层负载均衡:不修改ip,修改mac地址,返回时不经过负载服务器,直接返回给用户,性能高,安全性好,大型网站一般采用此方式与DNS负载结合,实现两层负载,如维基百科

  • 负载均衡算法:轮询、加权轮询、随机、最少连接、原地址散列

  • 集群session管理:

  • 主要方式:

  • session复制:主要问题,集群服务器太多的时候,复制影响性能

  • session绑定:一台服务器不可用时,session丢失

  • 利用cookie记录session:简单实用,很多网站实用

  • 统一的session集群



  1. 分布式数据库

  • mysql主从复制:通过主服务器的binlog实现将dml和ddl命令,同步到从服务器的relaylog,执行命令,实现数据同步,包含一主多从方式,主要优势为:分摊负载、专机专用、便于热备、高可用

  • mysql主主复制:相互同步binlog,只有一个写库,主主失效恢复,恢复流程如下:

  • mysql复制注意事项:

  • 主主复制的两个数据库不能并发写入

  • 复制只是增加了数据的读并发能力,并没有增加并发能力和存储能力

  • 更新表结构导致巨大的同步延迟,因此一般会关闭ddl的binlog自动同步,而采用手动同步数据定义语句



  1. 其他



用户头像

养乐多

关注

还未添加个人签名 2019.11.12 加入

还未添加个人简介

评论

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