我们在项目中使用jbosscache来做分布式缓存部分数据库数据。打算用INVALIDATION_SYNC来将remove的数据失效掉,
但令人失望的是,我们在put数据的时候,发现它也会广播invalidation消息,导致数据失效。这样的结果是,只有1台服务器有
缓存数据,其他服务器从数据库取到相同数据put到缓存时,就会导致其他服务器缓存失效,但这个操作实际上没有修改数据。
实在是不合理。可能是我们的使用方式有问题,或者有其他配置方法,请有这方面的朋友能帮助下,谢谢!
配置文件如下(就是标准的那个invalidationSync-service.xml文件):
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<server></server>
<classpath archives="jboss-cache.jar, jgroups.jar" codebase="./lib"></classpath>
<!---->
<!---->
<!---->
<mbean code="org.jboss.cache.CacheImpl"></mbean> name="jboss.cache:service=TreeCache">
<depends></depends>jboss:service=Naming
<depends></depends>jboss:service=TransactionManager
<!---->
<attribute name="TransactionManagerLookupClass"></attribute>org.jboss.cache.DummyTransactionManagerLookup
<!---->
<attribute name="IsolationLevel"></attribute>REPEATABLE_READ
<!---->
<attribute name="CacheMode"></attribute>INVALIDATION_SYNC
<!---->
<attribute name="UseReplQueue"></attribute>false
<!---->
<attribute name="ReplQueueInterval"></attribute>0
<!---->
<attribute name="ReplQueueMaxElements"></attribute>0
<!---->
<attribute name="ClusterName"></attribute>JBossCache-Cluster
<!---->
<!---->
<!---->
<attribute name="ClusterConfig"></attribute>
<config></config>
<!---->
<!---->
<udp mcast_addr="228.1.2.3" mcast_port="48866"></udp> ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false"/>
<ping num_initial_members="3" timeout="2000"></ping>
up_thread="false" down_thread="false"/>
<merge2 max_interval="20000" min_interval="10000"></merge2>
<!---->
<fd_sock></fd_sock>
<verify_suspect timeout="1500"></verify_suspect> up_thread="false" down_thread="false"/>
<pbcast.nakack retransmit_timeout="600,1200,2400,4800" gc_lag="50"></pbcast.nakack>
max_xmit_size="8192" up_thread="false" down_thread="false"/>
<unicast timeout="600,1200,2400" down_thread="false"></unicast>
<pbcast.stable desired_avg_gossip="20000"></pbcast.stable>
up_thread="false" down_thread="false"/>
<frag frag_size="8192"></frag> down_thread="false" up_thread="false"/>
<pbcast.gms join_retry_timeout="2000" join_timeout="5000"></pbcast.gms>
shun="true" print_local_addr="true"/>
<pbcast.state_transfer down_thread="true" up_thread="true"></pbcast.state_transfer>
<!---->
<attribute name="FetchInMemoryState"></attribute>true
<!---->
<attribute name="InitialStateRetrievalTimeout"></attribute>15000
<!---->
<attribute name="SyncReplTimeout"></attribute>15000
<!---->
<attribute name="LockAcquisitionTimeout"></attribute>10000
<!---->
<attribute name="EvictionPolicyClass"></attribute>
<!---->
<attribute name="UseRegionBasedMarshalling"></attribute>false
<!---->
<!---->
<!---->
<!---->
<!---->
分享到:
相关推荐
1. Cache接口:作为JBossCache的核心接口,提供了put、get、remove等基本缓存操作。通过对其实现的类进行研究,可以理解数据的存储和检索过程。 2. TreeCache类:它是JBossCache的默认实现,基于红黑树的数据结构,...
JBossCache的配置可以通过XML文件进行,允许用户自定义缓存模式、大小、过期策略、缓存加载策略等。这些设置对于优化性能和满足特定应用需求至关重要。 **6. 缓存生命周期管理** 缓存对象有其生命周期,包括创建、...
JbossCache中文文档由邱奎宁翻译,本人制作。
JBossCache是一款支持集群和事务的开源Java对象缓存技术,能够为集群环境下的Java应用提供高效的数据共享和数据缓存。JBossCache用户向导笔记是针对JBossCache使用的一个详细指南,它不仅介绍了JBossCache的基本概念...
jbosscache-core-3.2.7.GA.jar
jbosscache-core-3.2.5.GA-all.zip 是一个包含JBoss Cache核心组件的压缩包,这个版本是3.2.5.GA,主要用于提供高性能、分布式的缓存解决方案。JBoss Cache,也被称为Infinispan前身的一部分,是JBoss企业中间件的一...
3. **避免JVM堆溢出**:通过有效的内存管理和缓存策略,JBoss Cache能够在保证应用性能的同时,避免由于缓存数据过多而导致的JVM堆溢出问题。 #### 三、为什么选择JBoss Cache而非Map 尽管`Map`是实现简单缓存功能...
解压后,会得到一个包含发行版的目录,如 `JBossCache-pojo-3.X.Y`。为了方便,本教程将此目录称为 `PojoCache`。 配置文件位于 `PojoCache/etcdirectory` 下。可以通过编辑这些文件来调整底层缓存的行为: - **...
jbosscache-1.4.1.jar
jbosscache-core-3.1.0.jar
其中jbosscache-core-sources.jar为源代码jar包;jbosscache-core.jar含jbosscache的核心代码; lib中含有jbosscache-core.jar中所用到得class文件; etc中含有一些配置文件的样例
红帽公司jboss的内部资料,版本 2.2.0 Poblano版,需要的可以下载!
【描述】"基准-jbosscache" 暗示了这个项目包含了一系列的测试用例,这些用例设计用于模拟不同工作负载条件下的JBoss Cache操作,例如读取、写入、更新和删除等。通过这些基准测试,开发者可以了解在特定硬件和软件...
例如,单线程的上传操作在集群环境下可能会导致多线程并发上传。此时,需要考虑线程同步和定时器的集群解决方案,如Spring Quartz提供的集群支持。 4. **JDBC连接管理**:对于数据库集群,应正确配置JDBC连接,确保...
构建分布式多级缓存时,需要配置JBossCache3.0服务端,创建如TreeCache.xml的配置文件,其中定义了集群名称、缓存复制模式和JGroup通信配置等关键参数。通过配置这些参数,服务层缓存可以建立起集群的树形结构,并...
- **CacheConcurrencyStrategy.NONSTRICT_READ_WRITE**:非严格读写模式,不加锁,可能导致数据不一致。 - **CacheConcurrencyStrategy.TRANSACTIONAL**:事务性模式,提供事务级的缓存一致性,适用于高并发场景。 ...
目前大部分开源的分布式缓存的底层都是基于JGroups,包括鼎鼎大名的JBossCache、OSCache等等。 ayufox,20060717122217.gif 上图为JavaGroups的概念架构图。可以看出,JavaGroups从概念上自下而上分为三个部分,协议...