在我们的web应用中,大家可能经常会用到oscache来缓存数据。但是当你的应用服务器是集群环境的情况下,通常会有数据不同步的问题。为了解决这样的问题,可以利用IP组播实现集群环境下的节点间缓存数据的同步。
经过在2台PC机上分别启动tomcat,运行库存web应用,调用被缓存的方法,然后在其中一台更改缓存的结果,经测试,另一台的缓存被同步更新了。
这为集群环境下,各节点的同步提供了新的解决途径。
OSCache缓存组件提供了在集群下进行同步的支持。
只要在oscache.properties文件里添加如下内容就可以了,其中mcast_addr=231.12.21.132的值可以改变,其取值范围根据IP地址的规则(为某些应用预留了特殊的IP地址)来定。
cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;\
mcast_send_buf_size=150000;mcast_recv_buf_size=80000):\
PING(timeout=2000;num_initial_members=3):\
MERGE2(min_interval=5000;max_interval=10000):\
FD_SOCK:VERIFY_SUSPECT(timeout=1500):\
pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):\
UNICAST(timeout=300,600,1200,2400):\
pbcast.STABLE(desired_avg_gossip=20000):\
FRAG(frag_size=8096;down_thread=false;up_thread=false):\
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true)
在配置的过程中主要用到到的JAR包:
oscache-2.4.1.jar 缓存组件
jgroups-all.jar 基予JGroup的IP组播
commons-logging.jar 日志包
concurrent.jar 处理线程读写同步
分享到:
- 2009-01-22 15:16
- 浏览 2014
- 评论(0)
- 论坛回复 / 浏览 (0 / 3210)
- 查看更多
相关推荐
《osCache集群与数据同步详解》 osCache是一款开源的Java缓存框架,它提供了高效、易用的缓存管理方案,广泛应用于大型分布式系统中,以提高应用程序的性能和响应速度。osCache的核心功能包括缓存管理、缓存同步...
2. **Cache策略**:对象级缓存如HashMap在单机环境下可能无法适应集群环境,需要采用分布式缓存如Ehcache、JBossCache、OSCache,或者集中式缓存如Memcached。选择哪种取决于项目需求。 3. **线程和定时器**:在...
- **集群支持**:在分布式环境中,osCache可以实现多节点间的缓存同步,确保数据一致性。 - **缓存预热**:允许在应用启动时加载预定义的数据到缓存,提高应用启动速度。 - **缓存监听器**:可以通过监听器来监控...
在集群环境中,这有助于进行数据同步和业务逻辑处理。 6. **故障转移和容错**:在集群环境中,如果一个节点出现故障,OSCache应能自动将请求重定向到其他正常工作的节点,保证服务的连续性。 7. **性能优化**:...
通过使用JMS(Java Message Service)或RMI(Remote Method Invocation)通信协议,oscache可以在集群中的不同节点之间同步缓存状态,确保数据的一致性。 在实际应用中,oscache通常与Spring框架集成,以实现更灵活...
缓存同步是osCache的另一个关键特性,它确保了在多线程环境中的数据一致性。当多个线程同时读写同一缓存项时,osCache能通过锁机制保证操作的正确顺序,防止数据的不一致。 osCache还支持分布式缓存,这意味着可以...
此外,OSCache还支持集群环境下的缓存同步,通过`ClusteredCache`接口,可以在多台服务器之间共享缓存数据,实现分布式缓存。这在大型分布式系统中非常关键,因为它能确保数据的一致性和可用性。 OSCache的配置主要...
6. **事件监听**: 提供了缓存事件监听器接口,允许开发者在数据的存取过程中进行额外的操作,如数据同步、日志记录等。 **压缩包内容分析** 1. **docs**: 包含osCache的文档,包括用户手册、API参考等,是学习和...
6. **缓存同步**: 在分布式环境中,OSCache 支持集群间的缓存同步,保证所有节点的数据一致性。 **二、OSCache 的工作原理** OSCache 基于 JVM 内存进行缓存,通过序列化和反序列化对象来存储和读取。当一个对象被...
在集群环境中,OSCache 可以通过 JGroups 实现分布式缓存,使得多个服务器间的数据共享和一致性得以保证。缓存预热是指在应用启动时,预先加载一部分数据到缓存中,以减少用户等待时间。 使用 OSCache 时,开发者...
OSCache支持集群环境,可以在多台服务器之间共享缓存数据,确保数据的一致性。 二、OSCache工作原理 OSCache的核心机制是基于内存的数据存储。当应用程序请求数据时,OSCache首先检查缓存中是否存在该数据,如果...
4. **集群支持**:无需修改代码,即可实现集群环境下的缓存共享。 5. **缓存过期策略**:提供灵活的过期控制,包括可插拔的刷新策略。 主要特征还包括: - **多平台兼容**:兼容多种主流Web服务器,如Tomcat、...
Liferay的缓存系统(如Velocity Cache或OSCache)也需要在集群间同步,以确保所有节点访问的数据是最新的。这可以通过配置缓存同步策略实现。 6. **热添加/删除节点**: 能够动态添加或移除服务器节点是集群的...
2. **分布式缓存**:支持多节点间的缓存同步,适合于分布式环境,确保在集群中的数据一致性。 3. **缓存策略**:提供了多种缓存策略,如LRU(Least Recently Used)最近最少使用、FIFO(First In First Out)先进先...
5. **分布式缓存**: 在集群环境下,OSCache支持分布式缓存,使得多个节点间的缓存保持同步。这样,无论用户请求哪个节点,都能获取到相同且最新的缓存数据,增强了系统的可扩展性和可用性。 6. **缓存预热**: 开启...
JGroups提供了一组协议和服务,用于在分布式环境中建立和维护集群通信,包括成员资格管理、消息传递和一致性保证。 此外,项目中还引用了其他一些关键库: 1. `log4j-1.2.13.jar` 是Apache的日志框架,用于记录应用...
同步刷盘和手动提交都会增加消息处理的时间延迟,特别是在高并发环境下,这可能成为性能瓶颈。因此,在选择是否采用此类方案时,需要综合考虑业务需求与系统性能之间的平衡。 #### 总结与建议 通过以上分析可以...
在使用二级缓存时,需要注意缓存同步和失效的问题,因为缓存中的数据可能与数据库中的数据不同步。因此,需要正确配置缓存的生命周期和清理策略,以确保数据一致性。 总之,Hibernate的二级缓存是一个强大的工具,...
- **集群支持**:能够自动处理集群环境下的缓存同步问题。 - **高可用性**:即使某个节点失效,也能保持系统的正常运行。 - **灵活部署**:支持多种网络环境下的部署方式。 #### 八、JBossCache / TreeCache **...