首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

高性能多级网关与多级缓存架构落地实战内附资料

高性能多级网关与多级缓存架构落地实战

download:https://www.666xit.com/4178/

一、缓存的典型应用场景

下面的2中状况下,优化存储体系是无法有效提高功能的。

需求通过复杂运算得出的数据

例如需求展现有多少用户在线,假如运用数据库,每次都要履行 count 操作,展现量很大的话就对数据库造成了极大压力。

读多写少的数据

例如一个明星发布一条微博,或许有几千万人阅读,假如每次阅读都 select 一次的话,几千万的恳求对数据库的压力非常大。

缓存就是为了减轻存储体系的压力,将可重复运用的数据放到内存中,一次生成、多次运用。

二、规划关键

缓存尽管为存储体系减负了,但给架构规划带来了复杂性,下面3点需求重点重视:

缓存穿透

缓存雪崩

缓存热门

缓存穿透

指事务体系在缓存中没有查到数据,需求再次去存储体系查询。

通常有2中状况:

存储数据不存在

被拜访的数据确实不存在,存储体系中没有,那么缓存中肯定也没有。

对于这类数据,每次都要查询缓存、查询存储体系,假如有人恶意大量拜访一些不存在的数据,就会对体系产生严重影响。能够直接设置一个默认值放到缓存中,避免拜访存储体系。

缓存数据生成需求消耗时刻或者资源

存储体系中存在数据,但生成缓存耗时耗资源,缓存失效后,拜访压力就会集在存储体系了。

例如商品分页,数据量巨大,不能都缓存起来,只能分页缓存,页数靠后的拜访少,缓存就很容易过期消失,之后的拜访需求核算、拜访存储层,从头生成缓存。

正常状况这类拜访不会频繁,但假如爬虫遍历的时候,体系功能就或许出问题了。

这种状况没有太好的解决方案,能够考虑:

辨认爬虫禁止拜访,但这会影响SEO和推广;

做好监控,发现问题后及时处理,爬虫不是攻击,对体系的影响是逐步的,监控发现问题后有时刻处理。

缓存雪崩

当缓存过期被清除后,事务体系需求从头生成缓存,拜访存储体系、核算。

高并发的体系中,在新缓存还未生成的这一小段时刻内,或许会有上百个恳求进来,他们发现缓存中没有,就都去生成缓存,从而对存储体系造成巨大压力,引发连锁反应,造成体系崩溃。

解决方案:

更新锁

对缓存更新操作进行加锁维护,确保只有一个线程能够进行缓存更新。

对于分布式体系,或许有上百台服务器,即使每台服务器上只有一个更新线程,但总体数量大,同样会引发雪崩,需求运用分布式锁。

后台更新

缓存有效期设为永久,后台线程守时更新。

需求考虑一个状况:当缓存内存不足时,会清理掉一些缓存数据,从被清理到下次更新缓存这段时刻内,事务拜访时读到的就是空。

能够考虑当事务发现缓存失效后,发送一个音讯,通知后台线程进行更新。

后台更新机制还适合做缓存预热。指体系上线后,守时触发了缓存加载,不必等待用户拜访才加载。

缓存热门

缓存中的单个数据或许是大热门,短时刻内会被高频拜访,尽管缓存服务器的功能好,但假如拜访量过大也会带来功能压力。例如明星的某条微博被海量用户阅读。

解决方案:复制多个缓存副本,分散恳求,减轻单体服务器压力。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OO2NtwhJkT948v-rAPLof2OA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券