本文转载自公众号“读芯术”(ID:AI_Discovery)。
成都创新互联公司是一家专业提供鸡冠企业网站建设,专注与成都网站建设、网站制作、成都h5网站建设、小程序制作等业务。10年已为鸡冠众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
在计算机世界中,缓存(caching)就是将数据子集储存到一个具备高度可访问性的高速运行层的过程,这一层被称作高速缓冲存储器(cache)。
此过程旨在快速读取使用率较高的数据,避免在存取之前的数据时产生额外的计算负担。缓存只能储存数据一小段时间,这是权衡容量后的选择,以此换取更高的运行速度。
像随机存取存储器(RAM)和内存存储引擎这类在缓存层下的硬件能够实现快速存取,它们通常和软件层一起被用于访问数据。缓存基本上分为两种:本地缓存和远程缓存。本地缓存依靠JVW(Java虚拟机)堆进行储存,而远程(或集群)缓存使用内存存储器,如Redis和Memcached。
堆内缓存指把数据存储于Java堆中,在这里数据由垃圾收集器(GC)自动管理。
堆内缓存的优点:
堆内缓存的不足:
堆外缓存指把数据存储在堆外。垃圾收集器不会自动处理这些数据,因为数据被存储在Java堆外,所以它们以字节数组存储,因此也存在把数据序列化和反序列化的额外运行负担。
堆外缓存的优点:
堆外缓存的不足:
总之,因为堆外缓存能够长期存储大量数据,所以它是存储数据的一种更好方式。再加上大磁盘子系统,就能提高每秒读写次数(IOPS)。
远程缓存是将数据存储在云端的缓冲区。因为可以在云端检索数据,所以这有助于构建一个更坚固且性能更强的持久层。Redis和Memcached是当下两款大受欢迎的内存缓存产品。
图源:unsplash
远程缓存的优势:
如何确定系统/服务需要缓存
图源:unsplash
(1) 本地缓存:
通过在服务(比如说哈希表)内使用某种存储方式将使本地缓存的执行更加容易,但也会导致缓存一致性问题。意思就是,不同服务器中的本地缓存不同,这将导致数据不一致。
例如,服务器S1用数据D1响应了请求R1,并把它存储到本地缓存中。如果在数据库中的数据被更新成D2版本,之后R1再次发出相同的请求,则有可能返回数据D1或D2,这取决于请求抵达了哪个服务器。
冷启动也是内存缓存的一个重要问题。因为每一个服务器都是在没有缓存的情况下启动的,随着新服务器的增加,甚至在部署期间,对下游依赖发出的请求数量也会随之变多。这个问题可以通过请求合并解决。
(2) 外部缓存:
(3) 应对缓存扩展和弹性问题:
如果缓存达到最大容量,那么需要通过向其添加更多节点来扩展。深入了解系统及其在达到最大容量时的反应(例如,缓存达到最大容量时每个容器的内存利用率上升)有助于设置准确的警报。
这些警报可用于扩展缓存服务。在扩展服务时,需要记住两件事:缓存集群是否支持在没有宕机的情况下添加节点,或者是否支持一致性哈希算法来平衡流量分配。始终确保通过模拟故障来测试扩展策略。
(4) 控制数据的鲁棒性
缓存数据应能够读取更新后的代码格式,而更新后的代码应能够处理缓存所提供的旧版本数据。
图源:unsplash
(1) 缓存大小:根据服务中通过的数据类型可以确定缓存大小,以便提高缓存命中率。
(2) 缓存淘汰:这指的是当缓存达到最大容量时,把数据从缓存中移除。缓存淘汰最常见的模式是LRU(最近最少使用)。
(3) 缓存逾期:这是一种确定数据在缓存中的保留时间的策略,具体取决于数据刷新频率或客户处理过时数据的能力。
(4) 下游服务不可用
如果下游服务因为某些原因不可用,缓存服务不应该用更新数据的请求攻击下游,而是能够长期保护缓存,并等待它恢复。根据与客户之间的权衡协调,要么报告缓存中的过时数据,避免请求令下游服务掉线,要么使用一种机制来存储下游服务的错误响应,并对其进行相应的解释说明。
(5) 安全性
正在缓存的敏感数据或客户数据的安全性是人们对缓存集群的担忧之一。敏感数据应在存储前加密,并在输入和输出缓存数据的过程中确保其安全性。此外,由于缓存数据的返回速度比从数据库获取的调用速度快,攻击者可以根据响应时间识别服务发出的请求类型,这被称为侧信道时序攻击。
(6) “惊群效应”问题
下游服务不可用时,如果为了从下游服务获取未缓存的数据而发出多个请求,则可能会引发多次重试,进而导致服务掉线。可以结合多个策略来缓解这个情况,例如按客户或请求来进行节流、请求合并(即对相同的未缓存数据只发送一个请求)等。
缓存可以提供更快的数据访问速度和提高下游服务可用性,但它的代价是缓存节点的处理会更加复杂。通过巧妙地理解下游服务的需求,可以得出一个缓存解决方案。在不同的情景中(如流量峰值、缓存不可用、下游服务掉线等)都应当对此解决方案的表现进行仔细监控以调整参数。
希望本文能够帮你理解那些在为服务部署缓存解决方案时要牢记于心的要点。
网页题目:详解缓存:缓存中存在的挑战及策略
文章链接:http://www.shufengxianlan.com/qtweb/news14/34264.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联