`
linliangyi2007
  • 浏览: 1009675 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

ActiveMQ VS jBossMQ的选型讨论,给点建议!

阅读更多
最近,开始引入jms来为公司整体应用集成进行技术预演。

从目前流行的开源jms框架中,看中了ActiveMQ和jBossMQ两款。由于还在选型阶段,所以谈不上对这两款jms有啥深入认识,之所以选他们有以下方面考虑。

1.并发性能。公司后期的业务需求接近4000并发/S;
2.稳定性。7×24的可靠,最少也要7×20
3.支持集群。需要集群技术提供负载均衡,横向扩展以及多机备份(防止单点故障)。

从网络上了解的资料,ActiveMQ的性能似乎更好一下,而且不依赖于特定的应用服务器,这个是它吸引我的地方;

选择jBossMQ的理由是,公司的主要应用都是跑在jBOSS上,这样集成起来,特别是后期的集群配置应该会省不少麻烦,而且jBossMQ的性能也很出色(虽然不如AMQ)。缺点是绑死在jBoss上。

希望用过这两jms服务的兄弟都给点经验和看法

分享到:
评论
29 楼 javatracker 2009-01-17  
也在考虑mq的选型,倾向于ActiveMQ
28 楼 xmlspy_tony 2009-01-17  
4000/s 这个性能在IBM MQ也是个不错的数字,至少,发送一般很难到这个数字,接收还不错
至于MQ,我觉得Active比较好些,JBOSS绑的太紧,而且它底层用的MDB,这个是底层并发的,如果对数据的顺序有要求,请慎用
27 楼 chinata 2009-01-17  
linliangyi2007 写道
最近,开始引入jms来为公司整体应用集成进行技术预演。

从目前流行的开源jms框架中,看中了ActiveMQ和jBossMQ两款。由于还在选型阶段,所以谈不上对这两款jms有啥深入认识,之所以选他们有以下方面考虑。

1.并发性能。公司后期的业务需求接近4000并发/S;
2.稳定性。7×24的可靠,最少也要7×20
3.支持集群。需要集群技术提供负载均衡,横向扩展以及多机备份(防止单点故障)。

从网络上了解的资料,ActiveMQ的性能似乎更好一下,而且不依赖于特定的应用服务器,这个是它吸引我的地方;

选择jBossMQ的理由是,公司的主要应用都是跑在jBOSS上,这样集成起来,特别是后期的集群配置应该会省不少麻烦,而且jBossMQ的性能也很出色(虽然不如AMQ)。缺点是绑死在jBoss上。

希望用过这两jms服务的兄弟都给点经验和看法



这个...坦率说,2个都不太行(前面有个哥们说的Jboss mq就像个demo产品,以前某个产品中用过,真的很头痛)。Active MQ,我现在的经理曾经试过,也不咋的。这2个基本都属于你需要常常去关心的东西,不属于用上后就放心的产品。
如果你公司穷,就别幻想用MQ,没得给自己添堵,否则IBMMQ,Weblogic(现在是Oracle了)或者EMS都可以。
26 楼 flyingbug 2009-01-17  
linliangyi2007 写道


楼上两位提醒的是。应该是我没有说清楚,我说的模仿RAID的算法大体是这样的:
假设有8台的jBoss,J0 - J7;
当一个用户请求到达J0时,向J0的jms队列发送一条M0,J0收到后根据特定算法,它将发送一个备份消息到J3的jms中、,主--备消息可能有如下映射:
J0-->J3
J1-->J4
J2-->J5
J3-->J6
J4-->J7
J5-->J0
J6-->J1
J7-->J2
如果这时J3宕机,J6上的备份信息将继续处理,确保J3上的请求不会丢失。与此同时,J0的备份信息将发往J6,如此,按照一定算法循环,简单模拟RAID的存储备份规则。
同时每台JMS有自己的本地数据库,考虑采用简单一点的如MySQL,来存储消息队列。


这个方案看起来很晕人,这个结构要完成的是什么样的工作,搞这么复杂

linliangyi2007 写道

目前的关键是,先选取一个高可靠,稳定且已扩展的jmx服务端,我们再根据它的一些特点来设计我们的整体服务架构。
还请兄弟们多给一些jmx服务器的点评啦,谢谢!!



jms?jmx?


关于jms选型的建议是:不要用jms
可考虑其他集成方案
25 楼 fjlyxx 2009-01-16  
linliangyi2007 写道
fjlyxx 写道
最近,开始引入jms来为公司整体应用集成进行技术预演

对于使用MQ去解决这个问题,我个人保留意见.
有这么几个问题第一无法进行协调工作,第二无法保证时性高效性,扩展不行.第三,不能体现整体应用的集成.

个人建议是使用 请求的模式, 应用间通过向需要的服务发出请求来实现不同系统间的集成.当然你需要开发一堆的适配器.


这个我部分认同,jms不是万能的。
但目前,我们需要一个jms,倒不一定是为了解决soa的调用,而是为了解决高并发情况下的任务队列处理。所以,回到正题,哪个jms实现更好呢?ActiveMQ、jBossMQ or others??

解决高并发情况下的任务队列处理

我不知道你的任务是什么,但是我提一个问题.比如A向MQ发发送一个消息 很久都没有回复 那么你是否会继续向MQ发送这个消息呢?如果这样 你是否有足够的机制保障队列里面的消息不重复? 如果重复是否加重了服务的负载. 如果不重复那么这个消息是否又有可能发生死锁? 这是用第三方MQ会给你带来的烦恼.

24 楼 linliangyi2007 2009-01-16  
江南白衣 写道
现在mq们的集群方案,主推都是用DataBase 或 SNA来存储消息,8台MQ互相复制的做法不大现实。

另外,OpenMQ这个开源新贵Sun同志的产品也可以考虑下哦。


楼上两位提醒的是。应该是我没有说清楚,我说的模仿RAID的算法大体是这样的:
假设有8台的jBoss,J0 - J7;
当一个用户请求到达J0时,向J0的jms队列发送一条M0,J0收到后根据特定算法,它将发送一个备份消息到J3的jms中、,主--备消息可能有如下映射:
J0-->J3
J1-->J4
J2-->J5
J3-->J6
J4-->J7
J5-->J0
J6-->J1
J7-->J2
如果这时J3宕机,J6上的备份信息将继续处理,确保J3上的请求不会丢失。与此同时,J0的备份信息将发往J6,如此,按照一定算法循环,简单模拟RAID的存储备份规则。
同时每台JMS有自己的本地数据库,考虑采用简单一点的如MySQL,来存储消息队列。

在8台jBoss都正常的情况下,通过IP分配原则,分摊来自不同IP的请求。以这样的集群方式,应付高并发,且又要求高可靠的生产环境。哪怕一台服务器每秒只有500个请求的处理能力,8台也能轻松应付4000笔业务的峰值。

这个目前只是一个很粗很粗的设计思路,不要问我具体的技术细节哦,我也没去细想呢,呵呵!

目前的关键是,先选取一个高可靠,稳定且已扩展的jmx服务端,我们再根据它的一些特点来设计我们的整体服务架构。
还请兄弟们多给一些jmx服务器的点评啦,谢谢!!


23 楼 sdh5724 2009-01-16  
楼上, 本人以亲身体验, 并且以受害人的身份向你哭诉, 千万别用SUN的MQ。 痛苦, 实在是痛苦, 苦不堪言!!! 这也是目前我这么关心MQ产品的原因。
自从用了sun mq, 出去旅游一定要带上本本, 带上上网卡,脚踏祖国名山大川, 眼盯黑压压终端屏幕。
22 楼 江南白衣 2009-01-16  
现在mq们的集群方案,主推都是用DataBase 或 SAN来存储消息,8台MQ互相复制的做法不大现实。

另外,OpenMQ这个开源新贵Sun同志的产品也可以考虑下哦。
21 楼 xokao 2009-01-16  
linliangyi2007 写道
xokao 写道
目前activemq 支持均衡负载,包括定制比率和自动模式

如果你用nio发送模式,单台足够,可以使用M/S集群  但异步允许(1/10000)几率数据丢失 。
如果使用bio有点勉强,可以用一台作为前端分配器。其他的作为负载服务器。 但这里没有在实际使用过,需要验证,主要是对于前端的均衡负载服务器的单点处理问题。

难道需要在前段作为分配器的MQ做MS集群?

以上都缺乏足够经验来验证。。



我得方案是一个jboss带一个jms,然后是jboss的集群,当然,jms彼此间需要交叉发送备份信息,可以采用自己设计的,模仿raid的分发算法。

幻想一下,弄他8台服务器,交叉备份,哇卡卡卡,爽啊!!所以呢,jms选型很重要,不要等系统都设计完了,发现jms服务存在缺陷,那就郁闷了


方法不错,确实不需要局限与单纯的MQ

既然你选择jboss作为容器,可以试试jbossmessing , 以后如果有升级兼容性问题的处理上应该比较少。

请问下:

对于集群理解还不深,但对于交叉备份。 如果定时备份,必然降低数据可靠性。 可是如果采用及时增量复制备份,那么当压力大的情况下复制操作将会暂用大部分的操作。 楼主考虑过SNA没
20 楼 javacool_zhou 2009-01-16  
我们公司在实际开发时,就是使用ActiveMQ,但是发现在加载的时候有点慢,可能是我们没有配置好吧
19 楼 linliangyi2007 2009-01-16  
xokao 写道
目前activemq 支持均衡负载,包括定制比率和自动模式

如果你用nio发送模式,单台足够,可以使用M/S集群  但异步允许(1/10000)几率数据丢失 。
如果使用bio有点勉强,可以用一台作为前端分配器。其他的作为负载服务器。 但这里没有在实际使用过,需要验证,主要是对于前端的均衡负载服务器的单点处理问题。

难道需要在前段作为分配器的MQ做MS集群?

以上都缺乏足够经验来验证。。



我得方案是一个jboss带一个jms,然后是jboss的集群,当然,jms彼此间需要交叉发送备份信息,可以采用自己设计的,模仿raid的分发算法。

幻想一下,弄他8台服务器,交叉备份,哇卡卡卡,爽啊!!所以呢,jms选型很重要,不要等系统都设计完了,发现jms服务存在缺陷,那就郁闷了
18 楼 xokao 2009-01-16  
目前activemq 支持均衡负载,包括定制比率和自动模式

如果你用nio发送模式,单台足够,可以使用M/S集群  但异步允许(1/10000)几率数据丢失 。
如果使用bio有点勉强,可以用一台作为前端分配器。其他的作为负载服务器。 但这里没有在实际使用过,需要验证,主要是对于前端的均衡负载服务器的单点处理问题。

难道需要在前段作为分配器的MQ做MS集群?

以上都缺乏足够经验来验证。。

17 楼 linliangyi2007 2009-01-16  
fjlyxx 写道
最近,开始引入jms来为公司整体应用集成进行技术预演

对于使用MQ去解决这个问题,我个人保留意见.
有这么几个问题第一无法进行协调工作,第二无法保证时性高效性,扩展不行.第三,不能体现整体应用的集成.

个人建议是使用 请求的模式, 应用间通过向需要的服务发出请求来实现不同系统间的集成.当然你需要开发一堆的适配器.


这个我部分认同,jms不是万能的。
但目前,我们需要一个jms,倒不一定是为了解决soa的调用,而是为了解决高并发情况下的任务队列处理。所以,回到正题,哪个jms实现更好呢?ActiveMQ、jBossMQ or others??
16 楼 czx566 2009-01-16  
如果都改成请求与响应模式
感觉耦合度太大~

而且对于监听模式的实现更是如此!
15 楼 fjlyxx 2009-01-16  
最近,开始引入jms来为公司整体应用集成进行技术预演

对于使用MQ去解决这个问题,我个人保留意见.
有这么几个问题第一无法进行协调工作,第二无法保证时性高效性,扩展不行.第三,不能体现整体应用的集成.

个人建议是使用 请求的模式, 应用间通过向需要的服务发出请求来实现不同系统间的集成.当然你需要开发一堆的适配器.
14 楼 linliangyi2007 2009-01-16  
xokao 写道
activemq我们做个简单的持久性测试,在不使用集群上很稳定,
jbossmq没测,

性能 :activemq比jbossmq有明显优势

扩张性: activemq的与其他中间件的兼容性比较好 (websphere不明)

另 目前jbossmq已经不更新了,新的jbossmessing将取代他

jboss as5.0后都将使用jbossmessing作为jboss as的核心中间件


感谢感谢,就需要这样有内容的评述!

是否有人做过jms的集群方案,如果用ActiveMQ的话。说说经验及教训啊。
13 楼 xokao 2009-01-16  
activemq我们做个简单的持久性测试,在不使用集群上很稳定,
jbossmq没测,

性能 :activemq比jbossmq有明显优势

扩张性: activemq的与其他中间件的兼容性比较好 (websphere不明)

另 目前jbossmq已经不更新了,新的jbossmessing将取代他

jboss as5.0后都将使用jbossmessing作为jboss as的核心中间件
12 楼 sdh5724 2009-01-16  
jBossMQ还不能称之为产品,仅仅是JBOSS SERVER的嵌入一个低端MQ组件。
11 楼 linliangyi2007 2009-01-16  
czx566 写道
哦,做股票交易平台?
那4000/s

是不是有点低端呀


打个比方而已,我的意识是我们的稳定性要求就如同股票实时交易。
4000笔/s的并发是个很恐怖的数字。我觉得网络上说的并发概念理解上有差。
我所知道的一个相对权威的数字是google在07年的时候是500/s的检索。
当然google一个搜索业务处理的数据量是巨大的,我们没法跟他们相比。

10 楼 czx566 2009-01-16  
哦,做股票交易平台?
那4000/s

是不是有点低端呀

相关推荐

    简单的activemq点对点的同步消息模型

    在“简单的activemq点对点的同步消息模型”中,我们将探讨如何构建一个基本的、基于ActiveMQ的点对点消息传递系统,以及它的工作原理。 1. **点对点模型**:在JMS中,点对点模型(P2P)是一种消息传递模式,其中...

    activemq-cpp-library-3.9.5 编译的windows库文件,支持vs2015、vs2017

    在实际项目中使用ActiveMQ-CPP Library时,开发者需要注意以下几点: 1. 配置环境:确保项目设置正确引用了ActiveMQ-CPP的库文件和头文件路径,以便编译器能找到必要的依赖。 2. 引入库:在源代码中,通过`#include...

    activeMQ点对点map消息

    TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); session.close(); connection.close(); } } ``` 对于接收者,同样需要创建连接工厂的实例,连接到服务器,...

    ActiveMQ SSL

    ActiveMQ SSL配置教程!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    ActiveMQ的点对点与发布/订阅模式小demo

    在这个"ActiveMQ的点对点与发布/订阅模式小demo"中,我们将深入理解这两种基本的消息传递模型,并了解如何在实践中运用ActiveMQ。 1. **点对点模式(Point-to-Point,P2P)**: 点对点模式是基于队列(Queue)的...

    activeMq点对点和发布/订阅模式demo

    在`activeMQ_demo`这个压缩包中,可能包含了一些示例代码,用于演示如何使用ActiveMQ实现点对点和发布/订阅模式。这些示例可能包括了以下内容: 1. 生产者(Producer):创建和发送消息到队列或主题的代码,展示了...

    ActiveMQ-CPP在vs2017上测试通过

    在本文中,我们将深入探讨如何在Visual Studio 2017(简称VS2017)环境下成功配置和测试ActiveMQ-CPP,并分享2018年12月30日的测试经验。 首先,要开始使用ActiveMQ-CPP,我们需要确保我们的开发环境已经正确地设置...

    activeMQ收发工具.rar

    ActiveMQ是中国最流行的开源消息中间件之一,由Apache软件基金会开发。它基于Java Message Service (JMS) 规范,提供了可靠的消息传递功能,适用于分布式系统中的应用间通信。本压缩包“activeMQ收发工具.rar”包含...

    Apache_ActiveMQ教程

    由于其速度快(通常比JBossMQ快10倍),并拥有Apache的持续发展支持,ActiveMQ与OpenJMS、JbossMQ等开源消息中间件相比具有明显优势。 部署ActiveMQ相对简单,主要步骤包括下载Distribution版本、安装以及启动...

    消息队列:ActiveMQ:ActiveMQ消息类型:点对点与发布订阅.docx

    消息队列:ActiveMQ:ActiveMQ消息类型:点对点与发布订阅.docx

    activemq-cpp vs2010

    标签"3.9.4,vs2010"进一步确认了我们正在讨论的是ActiveMQ C++客户端的特定版本以及它与Visual Studio 2010的兼容性。这表明开发者或者打包者已经解决了可能存在的兼容性问题,使得在VS2010中编译和运行ActiveMQ-CPP...

    7道消息队列ActiveMQ面试题!

    ActiveMQ是一款非常流行的开源消息队列中间件,它实现了JMS(Java Message Service,Java消息服务)1.1规范,面向消息的中间件(Message Oriented Middleware,MOM)是指利用高效可靠的消息传递机制进行与平台无关的...

    ActiveMQ通信方式点对点和订阅发布

    本DEMO将深入探讨ActiveMQ中的两种主要通信模式:点对点(Point-to-Point,P2P)模型和发布/订阅(Publish/Subscribe,Pub/Sub)模型。 一、点对点(P2P)通信方式 1. 基本概念:在P2P模型中,消息从一个生产者...

    activemq

    ### ActiveMQ-CPP 开发手册知识点详述 #### 一、引言 - **编写目的**:本手册旨在帮助开发者快速掌握 CMS (C++ Messaging Service) 的使用方法,提高 C++ 开发者在消息传递系统方面的开发效率,并作为 CMS 开发的...

    activemq activeMq笔记

    ### ActiveMQ 概述 Apache ActiveMQ 是一款非常流行的开源消息中间件,它支持 Java 消息服务 (JMS) 标准,并提供了多种高级功能,例如持久化、集群、故障转移等。ActiveMQ 能够帮助开发者实现解耦、可靠的消息传输...

    ActiveMQ客户端

    1. **消息模型**:ActiveMQ支持多种消息模型,包括点对点(Queue)和发布/订阅(Topic)。在点对点模型中,消息由一个生产者发送到一个队列,然后由一个消费者接收并处理,每个消息只被消费一次。而在发布/订阅模型...

    ActiveMQ高并发处理方案

    ### ActiveMQ高并发处理方案详解 #### 一、引言 在现代分布式系统中,消息队列作为异步通信的核心组件之一,对于提高系统的吞吐量、降低响应时间和实现服务解耦等方面起着至关重要的作用。Apache ActiveMQ作为一款...

    Spring整合ActiveMQ实现点对点与主题发布订阅通信

    在本文中,我们将深入探讨如何使用Spring框架与Apache ActiveMQ集成,实现点对点通信(Point-to-Point)和发布/订阅(Publish/Subscribe)模式的通信。ActiveMQ是流行的开源消息中间件,它允许应用程序之间异步传输...

    最新稳定版ActiveMQ5.15.0

    5. **消息队列和主题**:ActiveMQ提供两种消息模式:点对点(Queue)和发布/订阅(Topic)。点对点模式中,每个消息只有一个消费者,而发布/订阅模式下,一个消息可以被多个订阅者接收。 6. **消息过滤**:ActiveMQ...

    ActiveMQ路由配置方式

    ActiveMQ路由配置方式 ActiveMQ路由配置是Apache ActiveMQ项目中的一种重要配置方式,它依赖另一个Apache项目Camel。ActiveMQ集成了Camel,启动时同时会启动Camel。通过Camel Web Console可以进行Routing配置。 ...

Global site tag (gtag.js) - Google Analytics