第五周课后总结
缓存命中率,
十次有九次能够从缓存中获取结果,则命中率 90%。
键数量
键数量越少,缓存的效率越高。
内存空间
缓存对象的生命周期
通读缓存
代理缓存、反向代理缓存,CDN
旁路缓存
独立的缓存
本地对象缓存
与应用服务器部署在一起
远程分布是对象缓存
Memecached share nothing
缓存提高的读性能
消息队列的好处;主要用到写的场景当中
1,提升的写性能;
2,更好的伸缩性;针对点对点的进行伸缩;
3,削峰填谷;在服务器最大承受能力时,把写并发发到消息队列里面,comsumer 来处理消息,并放到数据库中。当低估时,由于消息队列里面还有数据,所以 comsumer 一直在处理,则没有浪费服务器资源。
4,失败隔离和自我修复。
5,解耦
Eda(事件驱动架构)
当一个生产者发送一个事件,消费者通过消息队列,获取这个事件,然后进行处理;当时间产生到达的时候,由于事件本身的内容,驱动后续的消费者的程序执行;
解耦以及异步
好处:耦合的表面积减少;
主要 mq 产品比较
选择社区比较活跃,以及资料比较高
负载均衡
1,请求如何分发;
(1)http 重定向负载均衡;根据路由地址,将真正的 web 服务器的地址写到 http 重定向负载均衡器的 response 头里面,返回给客户端,client 接到 response 后,解析头,拿到地址,然后反问真正的 web 服务器。
缺点:(1)client 本来一次请求,现在变成两次请求;性能较低(2)安全,暴露了真正的 web 服务
(2)域名解析服务
通过域名解析,拿到 IP 地址。client 拿到 ip 后,访问其 web 服务器。
缺点:(1)第一次或者本地缓存过期的时候,才有两次请求。(2)同样有安全问题。解析出来的地址其实是内部的负载均衡服务器的地址。
(3)反向代理负载均衡。简单的几台或者十几台可以用。
缺点;性能比较差。应用层协议的转换。多个 tcp 包构建成一个完整的 http。
(4)IP 负载均衡
多 tcp 包进行修改。目标地址改成 web 服务器的地址,原地址改成负载均衡器的地址。response 的时候,恰好相反。
缺点:响应的数据包比较大。出口带宽是瓶颈。
(5)数据链路负载均衡
修改链路层的 Mac 地址。公用虚拟的 ip 地址。修改源 mac 以及目标 mac 地址。
响应的时候,源 mac 地址是 web 服务,目标是 client。由于 IP 地址不变,所以链路是复用的器的地址。
2,每次请求如何选取服务的;
常用的负载均衡算法:加权轮训(重点)、轮训、随机、最少链接、源地址散列(不太好,会话粘滞)
http 的会话管理
(1)session 复制。每个服务器 session 都会复制一个相关的 session。
缺点:服务器多的话,session 的数据同步会消耗资源。
(2)session 绑定。也就是说同一个请求会在某一个固定的 web 服务器上。
缺点:容错比较低。
(3)利用 cookie 记录 session【其次】
每次请求都有 cookie,web 服务器可以从 cookie 中获取 session。
缺点:1,cookie 可能被禁止。2,cookie 大小有限制。
(4)Session 服务器【最常见的方法】
提供一个共享 session 服务器【集群】。各个 web 服务器是无状态的。
互联网对性能和伸缩都有要求。状态管理用专用服务器来处理,其他的服务器为无状态的。
评论