技术选型(上)

发布于: 2020 年 07 月 08 日
技术选型(上)

缓存

定义

缓存的本质是提高读的性能。缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取时,用于加快读取的速度。

缓存的关键指标:缓存命中率。

影响缓存命中率的关键指标:缓存键集合大小,缓存可使用内存空间,缓存对象生存时间(TTL,time to live)。

分类

通读缓存,旁路缓存,浏览器对象缓存,本地对象缓存,远程分布式对象缓存。

特点

技术简单,性能提升显著,应用场景多。

注意点

实践中需要合理使用缓存:

  1. 频繁修改的数据不使用缓存,正常缓存数据的读写比例应该在2:1以上,缓存才有意义。

  2. 没有热点的访问,使用缓存没有意义。

  3. 数据不一致与脏读。正确处理方式为:数据更新时,通知缓存失效,删除缓存。电商场景下,若用户修改了商品信息,可以提示“审核中”,以便于缓存的更新。

  4. 缓存雪崩(缓存服务器崩溃导致数据库压力过大而宕机),缓存预热(缓存预加载),缓存穿透(高并发恶意请求不存在数据导致数据库压力过大)。

小结

注意一致性哈希算法的意义与实现,同时,注意redis集群不是采用一致性哈希解决分布式负载问题,而是预先分好一万多个桶,再将key分散到多个桶中。

消息队列

定义

消息队列的本质是提高写的性能

特点

实现异步处理、提升处理性能,更好的伸缩性,削峰填谷,失败隔离和自我修复,解耦。

负载均衡架构

分类

主要特点:越靠近网络底层实现负载均衡,性能越高。

  • HTTP 重定向负载均衡:HTTP 性能差,存在安全性问题

  • DNS 负载均衡

  • 反向代理负载均衡

  • IP 负载均衡

  • 数据链路层负载均衡

session管理

  • session复制:性能差,基本没有使用

  • session绑定:将session绑定到固定的服务器,但可用性较差

  • 利用cookie记录session

  • session服务器

用户头像

eazonshaw

关注

还未添加个人签名 2019.04.10 加入

还未添加个人简介

评论

发布
暂无评论
技术选型(上)