Java分布式集群缓存框架:Cacheonix
jopen
10年前
记得之前分享过的一款Java分布式缓存系统Ehcache,可以有效地减轻数据库的读写负担,提高Web系统的吞吐率。这次介绍的Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。
Cacheonix的特点
- 可靠的分布式 Java 缓存
- 通过复制实现高可用性
- 支持泛型的缓存 API
- 可与 ORM 框架集成
- 使用数据分区实现负载均衡
- 支持非多播网络
- 高性能计算
- 快速的本地 Java 缓存
- 分布式锁机制
Cacheonix的架构图
Cacheonix分布式缓存XML配置
<?xml version ="1.0"?> <cacheonix xmlns="http://www.cacheonix.com/schema/configuration" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.cacheonix.com/schema/configuration http://www.cacheonix.com/schema/cacheonix-config-2.0.xsd"> <server> <listener> <tcp port="8879" buffer="128k"/> </listener> <broadcast> <multicast multicastAddress="225.0.1.2" multicastPort="9998" multicastTTL="0"/> </broadcast> <partitionedCache name="customer.cache"> <store> <lru maxElements="10000" maxBytes="10mb"/> <expiration idleTime="120s"/> </store> </partitionedCache> <partitionedCache name="invoice.cache"> <store> <lru maxElements="10000" maxBytes="10mb"/> <expiration idleTime="120s"/> </store> </partitionedCache> <partitionedCache name="search.results.cache"> <store> <lru maxBytes="5mb"/> </store> </partitionedCache> </server> </cacheonix>
Cacheonix缓存的存取
从配置中获取Cacheonix实例
/** * Tester for CacheManager. */ public final class CacheonixTest extends TestCase { private Cacheonix cacheonix; /** * Tests getting an instance of CacheManager using a default Cacheonix configuration. */ public void testGetInstance() { assertNotNull("Cacheonix created in setUp() method should not be null", cacheonix); } /** * Sets up the fixture. This method is called before a test is executed. * <p/> * Cacheonix receives the default configuration from a <code>cacheonix-config.xml</code> found in a class path or * using a file that name is defined by system parameter <code>cacheonix.config.xml<code>. */ protected void setUp() throws Exception { super.setUp(); // Get Cacheonix using a default Cacheonix configuration. The configuration // is stored in the conf/cacheonix-config.xml cacheonix = Cacheonix.getInstance(); } /** * Tears down the fixture. This method is called after a test is executed. */ protected void tearDown() throws Exception { // Cache manager has be be shutdown upon application exit. // Note that call to shutdown() here uses unregisterSingleton // set to true. This is necessary to support clean restart on setUp() cacheonix.shutdown(ShutdownMode.GRACEFUL_SHUTDOWN, true); cacheonix = null; super.tearDown(); } }
读取缓存
Cacheonix cacheonix = Cacheonix.getInstance(); Cache<String, String> cache = cacheonix.getCache("my.cache"); String cachedValue = cache.get("my.key");
设置缓存
Cacheonix cacheonix = Cacheonix.getInstance(); Cache<String, String> cache = cacheonix.getCache("my.cache"); String replacedValue = cache.put("my.key", "my.value");
删除缓存
Cacheonix cacheonix = Cacheonix.getInstance(); Cache<String, String> cache = cacheonix.getCache("my.cache"); String removedValue = cache.remove("my.key");
Cacheonix作为一款开源的分布式缓存框架,可以满足中型企业规模的系统架构,对提升系统性能有非常棒的作用。
本文链接:http://原网站已经失效/article/java-cacheonix.html