发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

在Jboss Cluster环境下如何实现Singleton?

         
2003-06-15 18:54
赞助商链接

http://www.cocoonhive.org/articles/jboss/20030610/hasingleton.html

在cluster环境我们还是需要一些Singleton服务,如何保证singleton点在发生问题后,有替代点?Jboss 3 cluster已经可以做到这点。

2003-06-25 21:55

2003-07-07 20:25

请教banq,在应用服务器不提供这种singleton服务的时候,该如何实现singleton呢?

比如系统中有一个队列,所有的cluster机器都必须访问这个队列,该如何保证队列仅有一个实例,进而保证逻辑的正确性?

有人建议使用JNDI来解决,即通过JNDI来访问该队列,获取实例,再进行处理,这样可以吗?

2003-07-08 10:59

应该是可以的,实际就类似这篇文章的做法,该队列所在JVM不参与集群,做一个备份就可以,不过这个方法动作大了点。

在集群中一般singleton的设计都可以被化解的,不知你这个队列根据项目需要是不是可以重新设计,将之化解?你这实际上是状态唯一性,可否使用数据库,然后分布式cache来解决?

2003-07-08 20:17

谢谢banq大哥!

我准备采用JNDI的方案试试。

至于第二种方法,使用数据库作为中介,在这个系统中可能会有一定难度同时可能会有效率的影响。因为在系统中,队列中每一个元素保存的信息是比较复杂的。

队列中的每一个元素是当前正在运行的报表请求的抽象,姑且称之为一个job吧。每个job可能会于多个用户请求相对应(这多个用户请求报表的条件相同)。这个可以通过观察者模式来解决。当这个job运行完毕,需要通知这些用户请求(观察者),让这些请求进行下一步的动作。

如此一来,不仅要在数据库中保存job的信息,同时还要保存job的观察者信息。是不是复杂了点?呵呵。




集群cluster      singleton模式     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com