1.缓存意义
可扩展性,可靠性和高性能是现代J2EE应用程序的必备要求。不管客户端类型如何,请求处理通常都涉及到对性能有负面影响的操作,比如从不同的数据源收集信息和执行复杂的计算。 缓存是提高企业应用程序性能的最重要的实践之一。 每个应用程序都有自己的缓存要求,必须不断调整以确保不会发生性能下降。尤其是分布式缓存系统,缓存服务的目标。大量远程调用速度特别慢,会占用宝贵的网络带宽,引发性能问题。
2.缓存的基本准则
- 通过添加缓存来减少远程调用
- 缓存只读数据,如地区信息
- 给定的一组参数值总是返回相同的信息,如果可以容忍陈旧数据,则可缓存动态数据。
- 要缓存的数据量应该是可控的,否则最终会使用太多的内存
- 跨集群缓存动态数据并同步每个节点中的数据是困难的
- 应该避免缓存实时数据(如股市行情)和敏感数据
- 缓存可以引入与安全和审计有关的问题??
2.声明式缓存优点
声明式缓存不涉及任何编程,因此它是一种更容易,更快速的应用和调整缓存服务的方式。
高速缓存服务的配置可以完全在Spring IoC容器中完成。
声明式缓存特点:
- 提供一个统一,更简单,更易于使用的API
- 提供声明式缓存刷新以防止陈旧数据的存储
- 支持不同的声明式配置策略
- 可以很容易地扩展来支持额外的缓存提供程序
反之 编程式缓存
- 代码难以理解,核心功能难以看清
- 代码难以维护。对缓存提供者的API被嵌入并遍布在应用程序中
- 代码很难测试
- 代码很难重用
所以编程式风格带来的优势:
- 更清晰地分离责任
- 更高的模块化
- 设计决定的晚期约束,开发人员可以推迟做出有关缓存实现和调优的决策。
分布式缓存流程
缓存启动并运行后,您将查找需要将缓存对象存储在文件系统中的情况,或者在群集中的节点中缓存缓存中的更改。缓存提供者能够借助Java序列化来执行这些功能,这意味着要存储在缓存中的对象应该实现接口java.io.Serializable。
时间: 2024-11-06 11:27:42