《深入分布式缓存:从原理到实践》学习笔记(最终篇)

第十四章 典型电商应用与缓存

  • 及时响应性的用户需求

  • 数据准确行需求

  • 平台海量请求的诉求

  • 高可用诉求

14.1 电商类一个你用的挑战及特点

  • 稳定性决定服务能力

  • 高并发场景(Scale Out 加机器、Scale Up 提升单机性能)

  • 业务发展性能也得发展

  • 产品快速试错

14.2 应用数据静态化架构高性能单页Web应用

  • CMS系统:

    • 使用URL作为key,没有url使用id或者生成一个url作为key

    • 多版本使用redis的hash结构存储,字段按照维度存储:

      • 正式:www.baidu.com/{时间戳}

      • 预发布:www.baiducom/predeploy=true

      • 灰度:www.baidu.com/abVersion=true

14.3 应用多级缓存模式支撑海量读服务

  • Nignx服务器一般采用轮询算法一致性hash算法

  • 不过期的缓存机制

    • 适用于用户、分类、商品、价格、订单等,当缓存满了可以考虑LRU机制;同时,缓存定期同步Mysql的binlog实现缓存同步

  • 维度增量缓存

  • 大vaule缓存:使用多线程缓存(Memcached);对value进行压缩;Value拆分

  • 热点缓存:多缓存节点作缓存负载均衡;几秒的本地缓存。

  • 缓存负载均衡:应用Nginx在负载降低时使用一致性哈希访问服务器;负载较高时,使用服务器轮询;秒杀类商品等某些热点数据可以直接推入接入层Nginx。

  • 热点数据与更新缓存

    • 单击全量缓存+主从

    • 分布式缓存+应用本地热点

    • 实时热点发现系统

  • 因为本地缓存的存在,要考虑数据一致性问题,即何时失效或更新缓存

    • 订阅数据变更消息

    • 无法订阅数据或订阅成本较高,且对一致性要求不严格,则可以设置合理过期时间

    • 秒杀类的活动,可以订阅活动开启消息,将相关数据提前推送到前端应用,并将负载均衡机制降级为轮询。

    • 建立实时热点系统来对热点进行统一推送和更新

  • 更新缓存的原子性:版本号机制;使用如canal订阅binlog;多个队列单线程更新;分布式锁

14.4 构建需求响应亿级商品详情页

  • 单品页技术架构发展

 

16 新的旅程

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(《深入分布式缓存:从原理到实践》学习笔记(最终篇))