背景:
重构后需要通过调用dubbo接口获取数据,数据量比较大,需要做缓存
缓存策略:
1、客户端缓存
存在的问题:
缓存数据多份分散在不同的应用服务器上,应用机器越多,总占用缓存空间就越大;
数据量很高的情况,这种方案完全不可行
大量的客户端,数据更新一致性问题
2、服务端缓存,
客户端每次直接接口调用取
存在的问题:
高请求量的情况下,如果每次返回的数据量也高,缓存服务提供方的网络流量是个瓶颈
每次返回大数据量的话,网络开销和性能也是问题
选择:
平衡指标:响应时间,存储空间(数据量),数据一致性(数据更新频度),网络流量,请求量(次数)
总数据量:
高:适合服务端
小:适合客户端,服务端
------------------------------------------------------------------------------------------
一致性更新(实时性)要求:
强:适合服务端
弱:适合客户端,服务端
更新频度:
高:服务端
低:客户端和服务端都可以
注:因为服务端的机器相对较少,更新更及时;
------------------------------------------------------------------------------------------
请求次数/网络流量/响应时间
如果并发度非常高,建议在客户端,假如并发度极高,每次取得的数据都一样,那客户端没有必要每次都重新取值。
当然如果fuwu端能应对,放在服务端也可以,服务端也可以通过扩容等手段来处理
网络流量和响应时间有类似的分析
注:优先考虑服务端。
最佳实践:
数据量极高:服务端,不用怀疑
更新频度高:服务端,不用怀疑
一致性要求高:服务端
并发度非常高 && 数据更新频度低&&一致性要求低:客户端。
相关推荐
在软件开发中,性能优化是一个至关重要的环节,而系统缓存是提升应用程序性能的有效手段之一。本文将深入探讨.NET框架中的系统缓存机制,以帮助开发者理解如何利用缓存来提高应用的响应速度和整体效率。 缓存是一种...
分布式多级缓存实践是一种优化高并发环境下数据访问性能的重要技术。在现代互联网应用中,随着用户数量的增长和数据量的膨胀,单纯依赖数据库进行实时读写操作往往会导致性能瓶颈。为了解决这个问题,分布式多级缓存...
【缓存应用实践】 在现代IT系统中,缓存是一种重要的技术手段,它能显著提升系统性能,降低服务器压力,并减少资源消耗。本文将分享在实际项目中的缓存应用实践,探讨缓存技术的原理、分类、使用规划以及维护策略。...
总结来说,互联网缓存实践涉及到网络协议、服务器架构、数据库优化等多个层面,其目的是提高系统性能,降低服务器负载,提升用户体验。理解和掌握缓存机制及其应用场景,对于构建高效、稳定的互联网服务至关重要。
分布式缓存是现代大型Java系统中的重要组成部分,它主要用于存储经常访问的数据,以减少...通过理论学习和实践操作,可以更好地掌握分布式缓存的使用,提升系统性能,为开发出更高效、更稳定的Java应用奠定坚实基础。
通过AppFabric,开发人员可以轻松地将缓存功能集成到他们的应用中,而无需深入理解复杂的分布式系统原理。 AppFabric缓存支持存储各种可序列化的对象,如DataSet、DataTable、二进制数据、XML、自定义实体以及数据...
【标题】:“memcached缓存数据库应用实践1” 【描述】:“第2章 memcached使用2.1 安装memcached2.1.1 环境说明CentOS Linux release 7.4.1708 (Core)[roo” 在IT行业中,数据库管理和优化是至关重要的,特别是在...
本篇文章将深入探讨PHP缓存的实践应用,帮助大家更好地理解和运用这一关键技巧。 首先,我们来了解PHP缓存的基本概念。PHP缓存可以分为几种类型,包括文件缓存、内存缓存(如APC, Memcached, Redis)和数据库缓存。...
本文将详细探讨新浪动态应用平台后端系统以及自动化运维系统开发实践中的关键知识点,分析其技术架构的设计理念、实践过程中遇到的挑战以及解决方案。 首先,文档中提到了“Lamp项目托管平台”,这里指的应该是使用...
1. **云计算分布式缓存及应用实践**:本文件探讨的是云计算技术中的分布式缓存技术及其在实际应用中的案例和实施方法。分布式缓存作为一种存储技术,允许数据在多个节点间分布存储,提高了数据存取的并发性能,并能...
本文将浅析分布式系统缓存设计的相关知识点,内容涵盖了缓存系统的必要性、缓存的层级、缓存面临的问题及其解决方案,以及缓存数据结构的设计和管理方法。 一、缓存系统的重要性 分布式系统缓存设计之所以重要,是...
此外,文章还提供了相关项目实践的背景信息,为读者理解缓存系统设计在真实世界应用中的重要性提供了支持。在当今信息技术迅猛发展的背景下,了解和掌握如何利用WCF等技术构建高效、稳定的分布式缓存系统,对于任何...
最后,文档中提到的参考文献涉及缓存技术在不同领域和系统中的应用研究,包括在线考试系统、Web应用、分布式web缓存集群设计等。这些研究为理解分布式缓存技术提供了更多的理论基础和实践案例。 综上所述,分布式...
磁盘缓存,如文件系统缓存,将数据保存在硬盘上。虽然读写速度相对较慢,但它可以存储大量数据,且不依赖于内存资源。对于那些不那么频繁但需要长期存储的数据,磁盘缓存是一个不错的选择。 分布式缓存,如Hadoop ...
Java 缓存系统实战主要涉及的是使用 Memcached 这一开源缓存框架,它是一个高性能、分布式的内存对象缓存系统。Memcached 提供了 key-value ...通过了解其原理和实践操作,开发者可以更好地利用缓存技术优化应用程序。
在面试中,展示对这些问题的深入理解和实践经验,可以体现你对系统架构和性能优化的掌握程度,有助于提升面试的成功率。同时,了解并能讲述这些缓存策略的实际案例,将更能体现出你的实战能力。
Memcached是一款广泛使用的高性能、分布式内存对象缓存系统,主要用于缓解数据库负载,加快动态Web应用的速度。其特点包括: - **简单高效**:使用简单的协议进行数据交互,易于部署和管理。 - **高性能**:利用内存...
Redis是一种高性能的键值数据存储系统,常被用于构建分布式缓存、数据库和消息队列等应用场景。在“redis本地缓存与redis缓存”的主题中,我们将深入探讨这两种缓存方式及其各自的特点。 首先,我们要理解什么是...