单实例对象动态装载问题?

06-02-23 zljin
在应用系统中,一般将不经常变化的常量做成单实例对象,来做为缓存使用.但是,有时单实例对象中的数据也可能发生变化,需要重新装载.

问题:

1、当这个对象访问比较频繁时,如何实现动态装载?确保装载不出错,应用运行正常。

2、在集群环境下,如何实现单实例对象的装载同步?

是否有开源的项目,可以解决上述问题?请大家指教。

         

Skyecho
2006-02-23 18:58
顶!!!

banq
2006-02-24 14:22
>有时单实例对象中的数据也可能发生变化,需要重新装载.

这时在这个业务场景下,单实例对象中的数据实际是对象状态了,以Jivejdon3.0中Forum论坛是一个对象,ForumState是论坛状态记录这个论坛当前最新帖子等数据;当这个论坛由新帖发生时,就要刷新ForumState,ForumState是Forum中一个数据子对象,这时不必刷新Forum整个对象。

实现代码可见JiveJdon3.0,大概步骤:

1.不能实例单例,Forum还是使用对象缓存(JF内置)

2.当发新帖时,从数据库获得新的论坛状态新的ForumState,装载到Forum中,这时,这个Forum是缓存中的Forum。

在集群环境下,这种通知需要依靠JMS等异步群发机制,这些都依赖一个分布式缓存软件实现,当然EJB已经整合这个功能,EJB中是通过实体Bean机制实现通知,所以EJB3中你要通过Annotation元注释表明ForumState是一个Embedable,不是一般实体Bean.

猜你喜欢