- 浏览: 361614 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zzy2011266:
以上是特殊情况, 正确的方式是打开windowsshowVi ...
Android 出现 Your project contains errors, please fix them 。。。。 -
小奶牛:
BFGFG[b][/b]
PHP计算字符串长度 -
小奶牛:
[b][/b]YTYTY
PHP计算字符串长度 -
yuankunliu:
这样处理ppt里边的文本框在图片中有边框,知道怎么去掉不请问? ...
java转换ppt为图片 -
vtrtbb:
哦,我试试
简单的JS分页代码
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(以下内容不要换行)
索引式硬盘缓冲是辅助缓冲的一种,使用时需要做以下事情
#定义一个硬盘缓冲区产生器(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
这里其实就是指明了缓冲文件存放到那里去。
然后,做以下修改 jcs.default=DC 这样,所有未特别指定属性的缓冲区都会自己使用一个硬盘缓冲区,缓冲文件会以缓冲区的名字来命名。存放在指定的目录下
2、横向式的并行缓冲
并行式的配置如下
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=192.168.10.129:1121,192.168.10.222:1121 jcs.auxiliary.LTCP.attributes.TcpListenerPort=1121 jcs.auxiliary.LTCP.attributes.PutOnlyMode=false
这里的配置是在41,129,221三台机器上实现并行缓冲的。 大家都在1121端口上监听,同时与另外两台机器连接。如果连接失败,就会等待一个时间后再连接一次,直到连接成功为止。三台机器中任意一台的缓冲区发生更新,比如put和remove动作,就会把更新传递给另外两台。
13、单独指明某个缓冲区的属性
如果,针对某个缓冲区,比如叫做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.stratum.jcs.engine.memory.lru.LRUMemoryCache jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600 jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60
14、system.GroupIdCache
JCS文档中指出配置以下内容会比较好。
这种构架需要单独配置客户端和服务端
- jcs.default= jcs.default.cache
- attributes=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个,而不是指所有缓冲区总容量。以上配置,就可以让应用运行起来。
10、时间过期
如果需要引入时间过期机制,则需要加上
jcs.default.cacheattributes.cacheattributes.UseMemoryShrinker=true
jcs.default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=3600
jcs.default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=60
这里指明对象超过3600秒则过期,每隔60秒检查一次。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/J2EEWEIWEI/archive/2008/05/07/2409888.aspx
发表评论
-
Maven运行Selenium报错org/w3c/dom/ElementTraversal
2017-06-21 17:11 751Maven运行Selenium报错org/w3c/dom/ ... -
logback日志按天滚动记录
2017-05-09 11:25 2419<?xml version="1.0&quo ... -
spring boot 中用Swagger2 构建API说明文档
2017-05-05 12:10 516maven: <dependency> ... -
SpringMVC测试框架Mock[转载]
2017-02-22 15:09 2761基于RESTful风格的SpringMVC的测试,我们 ... -
maven本地安装jar包
2016-07-22 17:32 496mvn install:install-file -Dfil ... -
java发消息MSMQ
2014-03-31 11:29 1388java发送消息给微软MSMQ的组件 -
maven导出依赖jar包到指定目录
2014-01-22 15:35 759项目建立后,导出依赖jar包到指定目录: mvn d ... -
hadoop执行hadoop namenode -format错误问题
2013-01-02 20:54 9222运行时遇到如下问题: Exception in thread ... -
sql 每个分类取N条数据例子
2012-12-30 09:43 5682取得分组TOP-N测试表与测试数据 CREATE TABLE ... -
effective java第一版系在
2012-12-17 09:16 780做个备注吧,以后又找不到了 -
多线程执行任务
2012-11-19 21:05 800只研究有用的,工作中的需求:要把多个任务分派给多个线程去执行, ... -
java代码构建线程池
2012-11-15 21:48 826在现代的操作系统中, ... -
BugFree说明
2012-08-06 11:55 796BugFree 说明 Fixed 已修复 ... -
android 阅读器分页读取字数
2012-06-05 12:33 3266// 本方法 分行又分页 public static ... -
linux更新系统时间
2012-01-11 10:23 1545检查是否安装过ntp rpm -aq | g ... -
jstl 一些函数用法
2011-11-29 09:44 794fn函数里面有很多好用的方法 <%@ taglib ... -
activeMq 简单的安全设置
2011-11-25 18:40 1174在conf 中找到 jetty.xml 文件 < ... -
activeMq收不到消息
2011-11-25 18:36 1134项目需要应用jms,在本地测试好的,到了服务器就后可以看 ... -
仿goolge验证码,自己没有试过
2011-10-13 14:55 1006仿goolge验证码,自己没有试过 -
Tomcat 配置数据源
2011-09-22 15:22 1003<Resource name="jdbc/ ...
相关推荐
昆仑海岸 JCS大量程系列超声波物位变送器使用说明书PDF,昆仑海岸 JCS大量程系列超声波物位变送器使用说明书
1. **缓存管理**:JCS提供了多种缓存区域,每个区域可以有不同的配置,如缓存策略、过期时间等。这使得开发者能够针对不同类型的数据显示定制化的缓存行为。 2. **缓存策略**:JCS支持LRU(Least Recently Used)...
JCS不仅提供基本的内存缓存功能,还具备丰富的高级特性,如内存管理、磁盘溢出处理、线程池控制等,使其成为一种强大的缓存解决方案。 **1. 缓冲区(Region)的概念与编程** - **缓冲区**: 在JCS中,缓冲区是内存中...
2. 配置 JCS 配置文件(如 jcs-default.xml 和 jcs-region.xml),定义缓存区域、缓存策略等。 3. 在代码中使用 JCS API 进行缓存操作,如 `CacheManager.getInstance().getCache("缓存名")` 获取缓存实例,然后调用...
JCS的配置十分灵活,用户可以通过修改配置文件`cache.ccf`来实现不同缓存策略的切换,无需修改源代码。例如,要配置一个简单的内存缓存: ``` # WEB-INF/classes/cache.ccf jcs.default= jcs.default....
JCS缓存入门及简介
然而,由于提供的信息仅提及了一个JAR文件,我们假设这里指的是至少需要`jcs.jar`来启用基本的JCS功能。通常,JCS可能还需要如commons-logging.jar这样的日志框架支持,或者其他的依赖项,但具体依赖会根据实际项目...
**一、JCS的基本概念** 1. **缓存区域(Cache Regions)**:JCS允许你将不同的数据分组到不同的缓存区域中,这样可以根据需要为每个区域设置不同的配置参数。例如,你可以为高访问频率的页面数据创建一个区域,为低...
要使用JCS,首先需要在Java项目中添加JCS的依赖,然后创建一个配置文件(如`jcs.conf`),定义缓存区域、缓存策略以及缓存组件。配置文件可能包含以下内容: ```properties # 定义一个缓存区域 cache.region1....
配置 JCS 的过程通常涉及到创建一个配置文件,如 `cache.ccf`,其中定义了缓存区域(region)的属性。在提供的配置示例中,我们看到一个名为 `chatCache` 的缓存区域被定义。这个区域的配置包括: 1. **最大对象数*...
1. **配置文件**:JCS 使用 XML 配置文件定义缓存策略,如缓存容量、过期时间、缓存级别等。 2. **编程接口**:通过 Java API,开发者可以方便地进行缓存的增删查改操作。 3. **生命周期管理**:JCS 提供了 ...
在使用JCS时,开发者可以配置多种缓存区域,每个区域可以有自己的缓存策略,比如LRU(Least Recently Used)最近最少使用、FIFO(First In First Out)先进先出或定时过期等。JCS还支持内存缓存、硬盘缓存以及分布式...
**JCS(Java Caching System)1.3.jar** JCS(Java Caching System)是一个开源的、基于内存的分布式缓存系统,主要用于提高应用程序的性能和可伸缩性。JCS是Apache软件基金会下的一个项目,其核心设计目标是为Java...
昆仑海岸 JCS-10系列超声波物位变送器使用说明书PDF,昆仑海岸 JCS-10系列超声波物位变送器使用说明书
在集成JCS时,开发者需要了解如何配置缓存策略,例如设置缓存过期时间、选择合适的缓存区域、配置底层存储(如磁盘或数据库)以及调整并发参数等。同时,为了优化性能,可能还需要关注内存管理和垃圾回收策略,以...
4. **润滑系统**:良好的润滑是保障主轴箱正常运行的关键,JCS-018可能配置了强制润滑系统,如油气润滑或循环油润滑,以减少磨损,延长主轴寿命。 5. **冷却装置**:为了降低主轴工作时产生的热量,JCS-018可能配备...
为了帮助专业人士与学习者深入掌握这一设备,资料文件“JCS-018立时加工中心主轴箱及(sw+说明书+cad).rar”应运而生,它包含了设计资料、三维建模文件以及详细的CAD图纸,是探索立式加工中心核心部件——主轴箱的...
Ehcache支持多线程环境,具有丰富的API和配置选项,使得开发者可以根据项目需求进行定制。此外,Ehcache还集成了Spring框架,使得在Spring应用中集成非常方便。 JCS,全称Java Caching System,是一个开源的、...
学习这些内容可以帮助开发者更好地掌握JCS的使用,例如了解如何配置缓存区域,如何选择和配置合适的缓存策略,以及如何在代码中集成JCS进行数据存取。 总之,JCS是一个强大的工具,适用于需要高性能缓存解决方案的...