`
阅读更多

1、关于JCS
JCS是Jakarta的项目Turbine的子项目。它是一个复合式的缓冲工具。可以将对象缓冲到内存、硬盘。具有缓冲对象时间过期设定。还可以通过JCS构建具有缓冲的分布式构架,以实现高性能的应用。 对于一些需要频繁访问而每访问一次都非常消耗资源的对象,可以临时存放在缓冲区中,这样可以提高服务的性能。而JCS正是一个很好的缓冲工具。缓冲工具对于读操作远远多于写操作的应用性能提高非常显著。
2、JCS的特性
JCS除了简单的将对象缓冲在内存中以外,还具有几个特性,以适应企业级缓冲系统的需要。这些特性包括时间过期、索引式硬盘缓冲、并行式的分布缓冲等。
3、内存缓冲
JCS现在支持两种内存缓冲算法LRU和MRU。通常都是使用LRU算法。 org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache 使用内存缓冲区需要定义缓冲区大小,当超过缓冲区限制时,会将缓冲内容抛弃掉。如果有配硬盘缓冲,则将挤出来的缓冲内容写入硬盘缓冲区。
4、时间过期
JCS对于缓冲的对象,可以设定缓冲过期时间,一个对象在缓冲区中停留的时间超过这个时间,就会被认为是“不新鲜”而被放弃。
5、索引式硬盘缓冲
一方面,为了避免缓冲区过大,撑爆虚拟机的内存,另一方面又希望能够缓冲更多的对象,JCS可以将超出缓冲区大小的对象缓存到硬盘上。配置上也比较方便,只需要指定缓冲临时文件的存放目录位置。硬盘缓冲将缓冲对象的内容写到文件上,但是将访问索引保存在内存中,因此也能够达到尽可能高的访问效率。
6、并行式的分布缓冲(Lateral)
通常,将对象缓冲在内存中,一方面提高了应用的性能,而另一方面却使得应用不可以分布式发布。因为假设一个应用配置在两台服务器上并行运行,而两台服务器单独缓冲,则很容易导致两个缓冲区内容出现版本上的不一致而出错。一个机器上修改了数据,这个动作会影响到本地内存缓冲区和数据库服务器,但是却不会通知到另一台服务器,导致另一台上缓冲的数据实际上已经无效了。 并行式的分布缓冲就是解决这个问题。可以通过配置,将几台服务器配成一个缓冲组,组内每台服务器上有数据更新,会横向将更新的内容通过TCP/IP协议传输到其他服务器的缓冲层,这样就可以保证不会出现上述情况。这个的缺点是如果组内的并行的服务器数量增大后,组内的数据传输量将会迅速上升。这种方案适合并行服务器的数量比较少的情况。
7、Client/Server式的缓冲(Remote)
客户/服务端式的缓冲集群。这种方式支持一个主服务器和最高达到256个客户端。客户端的缓冲层会尝试连接主服务器,如果连接成功,就会在主服务器上注册。每个客户端有数据更新,就会通知到主服务器,主服务器会将更新通知到除消息来源的客户端以外的所有的客户端。 每个客户端可以配置超过一个服务器,第一个服务器是主服务器,如果与第一个服务器连接失败,客户端会尝试与备用的服务器连接,如果连接成功,就会通过备用服务器与其他客户端对话,同时会定期继续尝试与主服务器取得连接。如果备用服务器也连接失败,就会按照配置顺序尝试与下一个备用服务器连接。 这种方式下,更新通知是一种轻量级的,一个机器上的数据更新,不会把整个数据传输出去,而只是通知一个ID,当远程的其他机器收到更新通知后,就会把对应ID的缓冲对象从本地的内存缓冲区中移除,以保证不会在缓冲区内出现错误数据。 这种构造需要分别配置客户端和服务器,配置比较麻烦。
8、配置方法
JCS的好处之一,就是应用在开发的时候,可以不用去构思底层的缓冲配置构架。同一个应用,只需要修改配置,就可以改变缓冲构架,不需要修改应用的源代码。配置方法也比较简单,就是修改配置文件cache.ccf。这个文件放置在WEB-INF/classes目录下。配置格式类似log4j的配置文件格式。下面介绍一下使用各种缓冲结构的配置方法。
9、内存缓冲
#WEB-INF/classes/cache.ccf(以下内容不要换行) 

  1. jcs.default= jcs.default.cache   
  2. attributes=org.apache.jcs.engine.CompositeCacheAttributes   
  3. jcs.default.cacheattributes.MaxObjects=1000  
  4. jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache  

 上面配置了默认缓冲属性。一个应用中,由于对象类型的不同,可能会使用多个缓冲区,每个缓冲区都会有一个名字,如果在配置文件中没有指明特定的缓冲区的属性,所有的缓冲区都会根据默认属性来构建。上面的内容,指明缓冲区的大小为存放1000个对象,内存缓冲器使用LRUMemoryCache对象。可选的还有MRUMemoryCache,应该可以自定义新的内存缓冲区。1000个缓冲对象这个容量,是指每个缓冲区都缓冲1000个,而不是指所有缓冲区总容量。以上配置,就可以让应用运行起来。

10、时间过期
如果需要引入时间过期机制,则需要加上

  1. jcs.default.cacheattributes.cacheattributes.UseMemoryShrinker=true  
  2. jcs.default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=3600    
  3. jcs.default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=60   

这里指明对象超过3600秒则过期,每隔60秒检查一次。
11、索引式硬盘缓冲

索引式硬盘缓冲是辅助缓冲的一种,使用时需要做以下事情
#定义一个硬盘缓冲区产生器(Factory),取名为DC 
java 代码
  1. jcs.auxiliary.DC=org.apache.stratum.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory    
  2. 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 这样,所有未特别指定属性的缓冲区都会自己使用一个硬盘缓冲区,缓冲文件会以缓冲区的名字来命名。存放在指定的目录下

12、横向式的并行缓冲

并行式的配置如下 :

  1. jcs.auxiliary.LTCP=org.apache.jcs.auxiliary.lateral.LateralCacheFactory   
  2. jcs.auxiliary.LTCP.attributes=org.apache.jcs.auxiliary.lateral.LateralCacheAttributes   
  3. jcs.auxiliary.LTCP.attributes.TransmissionTypeName=TCP   
  4. jcs.auxiliary.LTCP.attributes.TcpServers=192.168.10.129:1121,192.168.10.222:1121  
  5. jcs.auxiliary.LTCP.attributes.TcpListenerPort=1121  
  6. jcs.auxiliary.LTCP.attributes.PutOnlyMode=false  

 这里的配置是在41,129,221三台机器上实现并行缓冲的。 大家都在1121端口上监听,同时与另外两台机器连接。如果连接失败,就会等待一个时间后再连接一次,直到连接成功为止。三台机器中任意一台的缓冲区发生更新,比如put和remove动作,就会把更新传递给另外两台。

13、单独指明某个缓冲区的属性

如果,针对某个缓冲区,比如叫做TestCache1,需要单独配置属性,可以如下配置

  1.  jcs.region.testCache1=DC,LTCP    
  2. jcs.region.testCache1.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes jcs.region.testCache1.cacheattributes.MaxObjects=1000    
  3. jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache    
  4. jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true    
  5. jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600    
  6. jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60    
  7.   

14、system.GroupIdCache

JCS文档中指出配置以下内容会比较好。

java 代码
  1. jcs.system.groupIdCache=DC    
  2. jcs.system.groupIdCache.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes    
  3. jcs.system.groupIdCache.cacheattributes.MaxObjects=10000    
  4. jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache    

这可能是JCS自己的组管理体系上的缓冲区。

15、Client/Server式的缓冲(Remote)

这种构架需要单独配置客户端和服务端

java 代码
分享到:
评论
2 楼 悬空90 2011-11-29  
牛人   呵呵
1 楼 LargeBean 2008-05-30  
引用
引用
引用
引用
引用
引用
引用
引用
引用
引用

相关推荐

    JCS-018立时加工中心主轴箱及(sw+说明书+cad).rar

    《JCS-018立式加工中心主轴箱及设计资料详解》 立式加工中心(Vertical Machining Center,简称VMC)是现代机械加工领域广泛应用的一种高效自动化设备,主要用于进行多面、多工序的精密零件加工。JCS-018型号的立式...

    JCS-018立时加工中心主轴箱及(sw+说明书+cad)cad图纸毕业生设计书.zip

    《JCS-018立式加工中心主轴箱及CAD设计详解》 在机械工程领域,加工中心是集高效、精密和自动化于一体的先进设备,...对于毕业生来说,这份设计书不仅提供了实践案例,也是理论知识与实际应用相结合的宝贵学习资料。

    JCS:JCS代码:通过联合分类和细分的可解释的COVID-19诊断系统

    COVID-CS数据集和JCS模型该论文的官方资料库:JCS:通过联合分类和分段进行解释的COVID-19诊断系统,IEEE图像处理事务(TIP)2021。 该存储库包含: COVID-CS数据集数据。 我们的JCS模型的培训和测试代码。 本文已被...

    机械毕业设计——JCS-018立时加工中心主轴箱.zip

    在【压缩包子文件的文件名称列表】中,虽然列出的是".rar"格式的文件,但根据标题应该是包含"JCS-018立式加工中心主轴箱"的设计资料。此压缩包内的文件可能有以下几个部分: 1. **设计论文**:详细阐述了设计目标、...

    佳灵 JCS系列IGBT直接串联高压变频器介绍.pdf

    JCS系列变频器的功能十分全面,包括了高压隔离、过流、过压、欠压、短路、缺相、过载、过热、接地、电动机过载等保护措施。此外,变频器支持多种控制方式,如PID控制,具有转矩提升功能,可实现加减速时间的设定。...

    IYZ1655ADataSheet

    根据提供的文档信息,我们可以总结出“IYZ1655A数据手册”中涉及的主要知识点。 ### IYZ1655A 数据手册概述 #### 1....- **文档编号**:PS-IYZ-1655A-00 - **版本**:1.0 - **发布日期**:2013年6月5日 ...

    jcs-profile:我的个人网站

    8. **社交媒体集成**: 网站可能会链接到JCS在LinkedIn、GitHub等社交网络上的个人资料,增加互动性。 9. **SEO优化**: 为了提高搜索引擎可见性,网站可能会考虑关键词优化、元标签和友好的URL结构。 10. **版本...

    jcs090218:的GitHub个人资料页面-@ jcs090218

    人脸图像特征提取matlab代码-jcs_qual:jcs_qual

    人脸图像特征提取是计算机视觉和模式...在实际使用时,建议仔细阅读代码注释,了解每个部分的功能,并结合相关文献资料来加深理解。同时,你也可以尝试用这个工具包处理自己的数据集,以验证其性能并进行定制化开发。

    典型机电一体化系统资料PPT学习教案.pptx

    机械加工中心,如JCS-018A立式加工中心,通常包含多轴驱动、换刀机械手、数控柜、刀库、主轴箱、操作面板、驱动电源柜、工作台等组件。加工中心的发展趋势追求高精度、高速度、高效率,同时强调高可靠性、标准化和...

    jagho-digital-transformation-project:此仓库已配置为terraform。 -该项目将在AWS中创建资源

    资料库的结构 :card_index:文件夹内容按键我们用于访问在JCS上使用的EC2实例的密钥IAM政策我们在JCS中使用的自定义IAM策略gitlab存储库我们在JCS中使用的存储库基础配置RDS群集和网络的所有配置文件自动脚本自动化...

    Sx1276/1278射频前端开发资料

    SX1276MB1LAS_e311v02a_prod_folder_433-915Mhz.zip、SX1276MB1MAS_e315v01a_prod_folder_433_868Mhz.zip、SX1276RF1IAS_e266v02a_169_868Mhz.zip、SX1276RF1JAS_e268v01a.zip、SX1276MB1JCS_e344v01a_prod_folder_...

    咖啡机UL系列测试指引资料.pdf

    - 使用3M 600#胶带进行拉力测试,确保印刷区域无脱落,同时通过JCS五步法测试印刷品的附着力,包括油脂、洗涤剂、黄油、酒精和胶带的擦拭,要求铭板不脱落,油墨不变色。 3. 耐压测试: - 在额定电压下测试L/N至...

    工程地质复习资料.pdf

    - **JRC**、**JCS**、**RQD**、**RMR** 和**BQ** 是衡量岩石质量和稳定性的指标。 5. **坝基岩体与边坡**: - **临空面** 和**抗力体** 关乎坝基的稳定。 - **抗滑稳定安全系数** 用于评估滑坡的稳定性。 - **...

    通信与网络中的Juniper推新款10GbE路由器适配卡

    瞻博网络(Juniper Networks)推出首款内建于T1600核心路由器的100GbE超高速以太网络路由器适配卡,能大幅增加每一链路的容量,让服务供货商和资料中心可藉此减少网络所需的接口数量,并大幅简化拓朴结构(topologies)...

    机械设计手册补充资料

    第 1 章常用资料、数据和一般标准 G1 常用几何体的体积、面积及重 心位置⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1 G2 常用力学公式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3 G2.1 常用截面的力学特性⋯⋯⋯⋯⋯⋯⋯⋯ 3 G2.2 受静载荷梁的支点反力...

    癌症病人应对进展探讨论文.doc

    JCS是应用最广泛的量表,包含了60种应对策略,同时考虑了策略的应用和效果,并且在中国女性生殖器官癌症患者中得到了验证,显示出了良好的可靠性和效度。 在研究情况部分,论文涵盖了对不同治疗阶段、居住环境、...

Global site tag (gtag.js) - Google Analytics