5个强大的Java分布式缓存框架
在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。1、Ehcache – Java分布式缓存框架
Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。同时EhCache 扩展非常简单,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。
官方网站:http://ehcache.org/
Ehcache有以下特点:
存取速度非常快,性能很不错。
可以应用多种缓存策略。
分级缓存,用户可以指定哪些数据在硬盘中缓存,哪些数据在内存中缓存。
可以通过RMI、可插入API等方式进行分布式缓存。
具有缓存和缓存管理器的侦听接口。
支持多缓存管理器实例,以及一个实例的多个缓存区域。
默认提供Hibernate的缓存实现。
2、Cacheonix – 高性能Java分布式缓存系统
Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。
官方网站:http://www.cacheonix.com/
Cacheonix的特点
可靠的分布式 Java 缓存
通过复制实现高可用性
支持泛型的缓存 API
可与 ORM 框架集成
使用数据分区实现负载均衡
支持非多播网络
高性能计算
快速的本地 Java 缓存
分布式锁机制 3、ASimpleCache – 轻量级Android缓存框架
ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。
官方网站:https://github.com/yangfuhai/ASimpleCache
ASimpleCache可以缓存哪些东西
ASimpleCache基本可以缓存常用的Android对象,包括但不限于以下几种类型:
普通字符串
JSON对象
经过序列化的Java对象
字节数组
ASimpleCache的特点
轻量级,只有一个Java文件
完整而灵活的配置,可以配置缓存路径,缓存大小,缓存数量,缓存超时时间等。
超时缓存自动失效,并从内存中自动删除。
多进程的支持
在Android开发中,我们可以用ASimpleCache来替换SharePreference配置文件,特别是如果你的应用经常要从互联网上读取数据,那么利用ASimpleCache可以缓存这些请求数据,等一段时间失效后再去重新读取,这样可以减少客户端流量,同时减少服务器并发量。 4、JBoss Cache – 基于事物的Java缓存框架
JBoss Cache是一款基于Java的事务处理缓存系统,它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。
官方网站:http://jbosscache.jboss.org/
集群高可用性
JBoss Cache将会自动复制缓存数据,并且在集群中的服务器之间进行缓存数据的同步,这样可以保证任何一台服务器重启了都不会影响缓存的可用性。
集群缓存可避免系统瓶颈
JBoss Cache顾名思义是利用缓存来提高系统扩展性的,当我们的WEB系统遇到大量的数据库读写时,系统的瓶颈将会出现在数据库端,JBoss Cache正好可以解决数据库的频繁读取问题,解决这个瓶颈。
另外,由于JBoss Cache的缓存是在集群中的每一个服务器间同步的,因此也不会因为一台缓存服务器遇到性能问题而影响整个系统。 5、Voldemort – 基于键-值(key-value)的缓存框架
Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBoss Cache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。
官方网站:http://www.project-voldemort.com/voldemort/
Voldemort的特点
缓存数据可以自动在各个服务器节点之间同步复制。
每一个服务器的缓存数据被横向分割,因此是总缓存的一个子集。
严格保持缓存的一致性。
提供服务器宕机快速恢复方案。
可配置的数据存储引擎。
可配置的数据序列化方式。
每一个数据项都有版本标识,用来保证数据的完整性和可用性。
每一个缓存节点都是独立的,因此任何一个节点的故障都不会影响系统的正常运行。 学习了,:D:D{:2_31:}。
页:
[1]