jcs缓存 文档.docx_第1页
jcs缓存 文档.docx_第2页
jcs缓存 文档.docx_第3页
jcs缓存 文档.docx_第4页
jcs缓存 文档.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

apache jcs cache system 使用配置简介Apache 2010-06-07 20:31:34 阅读55 评论0 字号:大中小订阅 一词汇理解Elements:目前的理解是要被放进CachingSystem的对象Regions:你可以将CachingSystem艺命名空间区域划分提供基本的namespace功能。这样有什么样的好处呢?每一区的需要更新的频率不太一样,可以分开设定。Auxiliaries:Auxiliaries是可以让Regions使用的plug-in,基于磁盘序列化的存储,缓存的持久化到硬盘。二、配置文件解析配置文件名为cache.ccf#DEFAULTCACHEREGION#这是预设的region#这里是设定使用什么Auxiliaries可以不填,使用默认值jcs.default=#设定使用的cache属性管理类别jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes#设定cache内对象的上限jcs.default.cacheattributes.MaxObjects=1000#设定memorycache的算法#jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache#设定是否使用memoryshrinker冗余内存清除程序jcs.default.cacheattributes.UseMemoryShrinker=true#当有使用memoryshrinker时,设定闲置内存的过期时间(就是超过这个时长时,根据缓存算法,超出MaxObjects(内对象的上限)的那部分对象将要被清除或者被存入磁盘中)jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600#设定shinker执行时间间隔jcs.default.cacheattributes.ShrinkerIntervalSeconds=60#设定element属性类别jcs.default.elementattributes=org.apache.jcs.engine.ElementAttributes#设定让element会过期单词Eternal(永久的意思)jcs.default.elementattributes.IsEternal=false#设定element建立后能存活多久,IsEternal=false时有效jcs.default.elementattributes.MaxLifeSeconds=21600#设定element可闲置的时间,IsEternal=false时有效jcs.default.elementattributes.IdleTime=1800如果你想设定不同的region#以此类推jcs.myregion=jcs.myregion.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes三、在程序中使用importorg.apache.jcs.JCS;importorg.apache.jcs.access.exception.CacheException;publicclassExamplepublicstaticvoidmain(Stringargs)throwsCacheException/使用testregion/如果没有设定会引用default的设定JCScache=JCS.getInstance(test);/用String来测试/因为他有实作Serializablecache.put(qrtt1,foolish);System.out.println(cache.get(qrtt1);cache.dispose();importorg.apache.jcs.JCS;importorg.apache.jcs.access.exception.CacheException;publicclassExamplepublicstaticvoidmain(Stringargs)throwsCacheException/使用testregion/如果没有设定会引用default的设定JCScache=JCS.getInstance(test);/用String来测试/因为他有实作Serializablecache.put(qrtt1,foolish);System.out.println(cache.get(qrtt1);cache.dispose();关于JCS默认分类 2008-04-25 11:07:12 阅读2 评论0 字号:大中小订阅 !关于JCS JCS是Jakarta的项目Turbine的子项目。它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。 对于一些需要频繁访问而每访问一次都非常消耗资源的对象,可以临时存放在缓冲区中,这样可以提高服务的性能。而JCS正是一个很好的缓冲工具。缓冲工具对于读操作远远多于写操作的应用性能提高非常显著。 !JCS的特性 JCS除了简单的将对象缓冲在内存中以外,还具有几个特性,以适应企业级缓冲系统的需要。这些特性包括时间过期、索引式硬盘缓冲、并行式的分布缓冲等。 !内存缓冲 JCS现在支持两种内存缓冲算法LRU和MRU。通常都是使用LRU算法。 org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache 使用内存缓冲区需要定义缓冲区大小,当超过缓冲区限制时,会将缓冲内容抛弃掉。如果有配硬盘缓冲,则将挤出来的缓冲内容写入硬盘缓冲区。 !时间过期 JCS对于缓冲的对象,可以设定缓冲过期时间,一个对象在缓冲区中停留的时间超过这个时间,就会被认为是“不新鲜”而被放弃。 !索引式硬盘缓冲 一方面,为了避免缓冲区过大,撑爆虚拟机的内存,另一方面又希望能够缓冲更多的对象,JCS可以将超出缓冲区大小的对象缓存到硬盘上。配置上也比较方便,只需要指定缓冲临时文件的存放目录位置。硬盘缓冲将缓冲对象的内容写到文件上,但是将访问索引保存在内存中,因此也能够达到尽可能高的访问效率。 !并行式的分布缓冲(Lateral) 通常,将对象缓冲在内存中,一方面提高了应用的性能,而另一方面却使得应用不可以分布式发布。因为假设一个应用配置在两台服务器上并行运行,而两台服务器单独缓冲,则很容易导致两个缓冲区内容出现版本上的不一致而出错。一个机器上修改了数据,这个动作会影响到本地内存缓冲区和数据库服务器,但是却不会通知到另一台服务器,导致另一台上缓冲的数据实际上已经无效了。 并行式的分布缓冲就是解决这个问题。可以通过配置,将几台服务器配成一个缓冲组,组内每台服务器上有数据更新,会横向将更新的内容通过TCP/IP协议传输到其他服务器的缓冲层,这样就可以保证不会出现上述情况。这个的缺点是如果组内的并行的服务器数量增大后,组内的数据传输量将会迅速上升。这种方案适合并行服务器的数量比较少的情况。 !Client/Server式的缓冲(Remote) 客户/服务端式的缓冲集群。这种方式支持一个主服务器和最高达到256个客户端。客户端的缓冲层会尝试连接主服务器,如果连接成功,就会在主服务器上注册。每个客户端有数据更新,就会通知到主服务器,主服务器会将更新通知到除消息来源的客户端以外的所有的客户端。 每个客户端可以配置超过一个服务器,第一个服务器是主服务器,如果与第一个服务器连接失败,客户端会尝试与备用的服务器连接,如果连接成功,就会通过备用服务器与其他客户端对话,同时会定期继续尝试与主服务器取得连接。如果备用服务器也连接失败,就会按照配置顺序尝试与下一个备用服务器连接。 这种方式下,更新通知是一种轻量级的,一个机器上的数据更新,不会把整个数据传输出去,而只是通知一个ID,当远程的其他机器收到更新通知后,就会把对应ID的缓冲对象从本地的内存缓冲区中移除,以保证不会在缓冲区内出现错误数据。 这种构造需要分别配置客户端和服务器,配置比较麻烦。 !配置方法 JCS的好处之一,就是应用在开发的时候,可以不用去构思底层的缓冲配置构架。同一个应用,只需要修改配置,就可以改变缓冲构架,不需要修改应用的源代码。配置方法也比较简单,就是修改配置文件cache.ccf。这个文件放置在WEB-INF/classes目录下。配置格式类似log4j的配置文件格式。下面介绍一下使用各种缓冲结构的配置方法。 !内存缓冲 #WEB-INF/classes/cache.ccf(以下内容不要换行) jcs.default= jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes jcs.default.cacheattributes.MaxObjects=1000 jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache 上面配置了默认缓冲属性。一个应用中,由于对象类型的不同,可能会使用多个缓冲区,每个缓冲区都会有一个名字,如果在配置文件中没有指明特定的缓冲区的属性,所有的缓冲区都会根据默认属性来构建。上面的内容,指明缓冲区的大小为存放1000个对象,内存缓冲器使用LRUMemoryCache对象。可选的还有MRUMemoryCache,应该可以自定义新的内存缓冲区。1000个缓冲对象这个容量,是指每个缓冲区都缓冲1000个,而不是指所有缓冲区总容量。以上配置,就可以让应用运行起来。 !时间过期 如果需要引入时间过期机制,则需要加上 jcs.default.cacheattributes.cacheattributes.UseMemoryShrinker=true jcs.default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=3600 jcs.default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=60 这里指明对象超过3600秒则过期,每隔60秒检查一次。 !索引式硬盘缓冲 索引式硬盘缓冲是辅助缓冲的一种,使用时需要做以下事情 #定义一个硬盘缓冲区产生器(Factory),取名为DC jcs.auxiliary.DC=org.apache.stratum.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory jcs.auxiliary.DC.attributes=org.apache.stratum.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes jcs.auxiliary.DC.attributes.DiskPath=g:/dev/jakarta-turbine-stratum/raf #这里其实就是指明了缓冲文件存放到那里去。 然后,做以下修改 jcs.default=DC 这样,所有未特别指定属性的缓冲区都会自己使用一个硬盘缓冲区,缓冲文件会以缓冲区的名字来命名。存放在指定的目录下。 !横向式的并行缓冲 并行式的配置如下 jcs.auxiliary.LTCP=org.apache.jcs.auxiliary.lateral.LateralCacheFactory jcs.auxiliary.LTCP.attributes=org.apache.jcs.auxiliary.lateral.LateralCacheAttributes jcs.auxiliary.LTCP.attributes.TransmissionTypeName=TCP jcs.auxiliary.LTCP.attributes.TcpServers=29:1121,22:1121 jcs.auxiliary.LTCP.attributes.TcpListenerPort=1121 jcs.auxiliary.LTCP.attributes.PutOnlyMode=false 这里的配置是在41,129,221三台机器上实现并行缓冲的。 大家都在1121端口上监听,同时与另外两台机器连接。如果连接失败,就会等待一个时间后再连接一次,直到连接成功为止。三台机器中任意一台的缓冲区发生更新,比如put和remove动作,就会把更新传递给另外两台。 !单独指明某个缓冲区的属性 如果,针对某个缓冲区,比如叫做TestCache1,需要单独配置属性,可以如下配置。 jcs.region.testCache1=DC,LTCP jcs.region.testCache1.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes jcs.region.testCache1.cacheattributes.MaxObjects=1000 jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.strat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论