负载均衡()
通过这个实验可以看到和的Web服务器通过Terracotta服务器共享了同一份缓存在本例中Web应用的缓存配置如以下代码所示
<?xml version= encoding=UTF?>
<ehcache name=ColorCache>
<defaultCache
maxElementsInMemory=
eternal=false
timeToIdleSeconds=
timeToLiveSeconds=
overflowToDisk=true
diskSpoolBufferSizeMB=
maxElementsOnDisk=
diskPersistent=false
diskExpiryThreadIntervalSeconds=
memoryStoreEvictionPolicy=LRU/>
<cache name=colors
maxElementsInMemory=
maxElementsOnDisk=
eternal=false
timeToIdleSeconds=
timeToLiveSeconds=
memoryStoreEvictionPolicy=LFU>
<terracotta/>
</cache>
<terracottaConfig url=localhost:/>
</ehcache>
该缓存是前文中介绍的EhCache缓存的分布式形态在配置文件最后指定了缓存服务器地址在程序中使用分布式缓存的方法也很简单与前文中介绍的EhCache几乎相同如下代码片段
private static final CacheManager cacheManager = new CacheManager()
private Ehcache getCache() {
return cacheManagergetEhcache(colors) //与配置文件中的名称一样
}
public Color getColor(String name) {
Element elem = getCache()get(name) //从分布式缓存中获取数据
if (elem == null) { //若不存在则新建颜色
Color color = colorDatabasegetColor(name)
if (color == null) { return null; }
getCache()put(elem = new Element(name color)) //将颜色放入缓存
}
return (Color) elemgetValue()
}
Terracotta的另一个重要的应用是session共享在Terracotta安装目录的sessions\samples\cart子文件夹内有session共享的示例与colorcache示例一样首先需要启动Terracotta服务器接着启动两个Web应用程序分别运行在和端口两个Web服务器在各自独立的JVM虚拟机中运行彼此独立
返回目录Java程序性能优化让你的Java程序更快更稳定
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
JME移动开发实战教学视频
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南