技术选型(上)
缓存
定义
缓存的本质是提高读的性能。缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取时,用于加快读取的速度。
缓存的关键指标:缓存命中率。
影响缓存命中率的关键指标:缓存键集合大小,缓存可使用内存空间,缓存对象生存时间(TTL,time to live)。
分类
通读缓存,旁路缓存,浏览器对象缓存,本地对象缓存,远程分布式对象缓存。
特点
技术简单,性能提升显著,应用场景多。
注意点
实践中需要合理使用缓存:
频繁修改的数据不使用缓存,正常缓存数据的读写比例应该在2:1以上,缓存才有意义。
没有热点的访问,使用缓存没有意义。
数据不一致与脏读。正确处理方式为:数据更新时,通知缓存失效,删除缓存。电商场景下,若用户修改了商品信息,可以提示“审核中”,以便于缓存的更新。
缓存雪崩(缓存服务器崩溃导致数据库压力过大而宕机),缓存预热(缓存预加载),缓存穿透(高并发恶意请求不存在数据导致数据库压力过大)。
小结
注意一致性哈希算法的意义与实现,同时,注意redis集群不是采用一致性哈希解决分布式负载问题,而是预先分好一万多个桶,再将key分散到多个桶中。
消息队列
定义
消息队列的本质是提高写的性能。
特点
实现异步处理、提升处理性能,更好的伸缩性,削峰填谷,失败隔离和自我修复,解耦。
负载均衡架构
分类
主要特点:越靠近网络底层实现负载均衡,性能越高。
HTTP 重定向负载均衡:HTTP 性能差,存在安全性问题
DNS 负载均衡
反向代理负载均衡
IP 负载均衡
数据链路层负载均衡
session管理
session复制:性能差,基本没有使用
session绑定:将session绑定到固定的服务器,但可用性较差
利用cookie记录session
session服务器
评论