站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题600分,关于Sun Message Queue的集群!

600分,关于Sun Message Queue的集群!

摘要: 600分,关于Sun Message Queue的集群!


大家好!

我在2台linux服务器上都安装了Sun Message Queue企业版,然后做了个简单的broker集群.

主要步骤如下:
1:分别修改2个MQ的配置文件,使imq.cluster.brokerlist=192.168.18.11:7676,192.168.18.12:7676

2:启动2个MQ,这时broker集群已经建立

3:编写客户端代码,进行消息发送接收测试,myQConnFactory.setProperty(ConnectionConfiguration.imqAddressList, "192.168.18.11:7676,192.168.18.12:7676")

集群测试结果如下:
1:支持负载均衡,2个MQ都有消息到达

2:当停止一个MQ,客户端能自动发送消息到另一个MQ


现在的问题是:客户端不能接受到停止的那个MQ上保存的消息,请大家都讲讲该怎么保持2个broker的消息完全同步?






我初步的想法是:

要保持消息完全同步,消息必须保存在同一个地方,例如,保存到同一个数据库;



请各位有sun MQ集群经验的高手讲讲你们一般都是怎么做的!

也可以详细的讲讲结合sun application server做集群的方式!

非常感谢!




高手都看世界杯去了?

再讨论2个问题
1:在sun application server中包括sun message queue,各位是怎么结合sun application server做sun message queue集群的?是不是仅仅利用sun application server提供jndi服务?

2:怎么让sun message queue的消息持久到数据库,例如oracle等

有这方面经验的都说说吧!
先谢谢啦!


这么多的分,眼馋

^_^


linux没用过


UPUP


今天下午下载了oracle 10g,并把集群的2个sun message queue持久到了oracle数据库,可测试了一下,发现客户端还是不能接收到停止的那个MQ的消息,请大家都讲讲该怎么保持2个broker的消息完全同步?

帖子没有什么反应,看来还是自己老老实实看sun的文档好了,想偷个懒都不行!


持久到oracle的集群测试结果如下:
1:支持负载均衡,2个MQ都有消息到达

2:当停止一个MQ,客户端能自动发送消息到另一个MQ


现在的问题是:客户端不能接收到停止的那个MQ上保存的消息,请大家都讲讲该怎么保持2个broker的消息完全同步?



接分


jms 在这方面没有做到这么好,可以考虑用storage cluster。 当然成本就更高了。
我觉得这方面没有必要做的那么强大了。即使一台jms crash以后,只要能够启动,那么启动以后消息还是可以继续被消费者消费的。


csrcom(泥鳅)兄,我觉得sun应该是支持的,这也应该是集群的特性之一啊.

如果万一某台MQ服务器物理损坏,一时半会还修不好,那这些消息岂不是就没了.


csrcom(泥鳅)兄,我以前很少用sun的产品,请多多指导我啊!


csrcom(泥鳅)兄:

我已经把集群的2个sun message queue持久到了oracle 10g数据库,经过测试,发现它们的消息都保存在同一个表里面.



另外,我的客户端目前是通过在程序中创建ConnectionFctory和Queue进行测试的,我明天在2台linux上都安装sun application server企业版,然后客户端通过jndi获取ConnectionFctory和Queue进行测试,看看有什么不同!

csrcom(泥鳅)兄, 多多指导啊!



灌水...


搞定了!


采用数据库持久化消息固然是好事情,但是要想到你必须依赖这个数据库服务。如果外围的系统因为某种原因宕机。或者网络问题,会不会影响sun message queue的服务,这些问题你都应该进行测试。


csrcom(泥鳅)说的是,其实在我们的方案中,数据库也是集群的,系统能根据用户规模的不断增长进行水平扩展。

另外,我也进行了性能测试,并以“循证”方式进行性能分析,因为性能非常重要,所以我们奉行“实际数据决定一切”的原则,而非受控于臆测与偏见。


由于我以前大多用的是weblogic、websphere或jboss、tomcat,对sun的产品的经验不多,还请csrcom(泥鳅)兄多多指导!


不知道顶一下哈


jms是异步通信 不是同步的 性能有问题??? 不理解

而且消息存入数据库 数据库也是集成的
怎么不直接用数据库


性能上面要看什么程度才对于一个应用是可接受得。一台jms server不一定就满足你全部的需求,有可能2台甚至更多服务器来分担压力。

jms 并非一定是异步得,也有同步得。看你是如何使用了。

数据库跟JMS是完全干不同的活,完全2个不同的东西。
而且在jms server中数据库的意图只是用于消息的持久化,消息如何持久化、何时持久化都是Jms server以及我们的配置决定的(可能消息一到马上持久化,也有是一定时间才持久化一次,这些完全是配置决定的)。


不要忘记JMS 跟 数据库的 角色。 2个在一起配合干活,不是代表数据库就能搞定全部的活。



确实能同步 MDB是异步

不要忘记JMS 跟 数据库的 角色。 2个在一起配合干活,不是代表数据库就能搞定全部的活。
jms是一个标准 实现方式多种多样
不按照sun的接口也可以实现相似功能

具体性能是数据存储方面 还是消息接受发送方面
看实际了 凭空讨论也没什么意义




先顶一下,马上回复!


基于MQ技术,不仅可以非常简单的进行集群,解决系统的负载均衡、高可用性、FailOver等问题,同时也可以利用MQ实现工作流,简化系统之间的通讯等。

如果那位高手有Sun Message Queue集群的经验,请继续分享!


sun的文档没有说清楚,我是经过测试才搞定的,好了,揭贴。


↑返回目录
前一篇: 有关连接池的问题!对于连不同的数据库,Context对象内部具体是什么值?
后一篇: 发现JAVA两个问题,SPLIT和REPLACEALL,希望有高手可以解答