三个主流消息中间件区别讲解

上传人:我** 文档编号:114455853 上传时间:2019-11-11 格式:DOCX 页数:16 大小:970.98KB
返回 下载 相关 举报
三个主流消息中间件区别讲解_第1页
第1页 / 共16页
三个主流消息中间件区别讲解_第2页
第2页 / 共16页
三个主流消息中间件区别讲解_第3页
第3页 / 共16页
三个主流消息中间件区别讲解_第4页
第4页 / 共16页
三个主流消息中间件区别讲解_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《三个主流消息中间件区别讲解》由会员分享,可在线阅读,更多相关《三个主流消息中间件区别讲解(16页珍藏版)》请在金锄头文库上搜索。

1、市场上的消息中间件:mom4jmom4j是一个完全实现JMS1.1规范的消息中间件并且向下兼容JMS1.0与1.02.它提供了自己的消息处理存储使它独立于关系数据与语言,所以它的客户端可以用任何语言开发.OpenJMSOpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特性: *. 它既支持点到点(point-to-point)(PTP)模型和发布/订阅(Pub/Sub)模型。 *. 支持同步与异步消息发送 *. JDBC持久性管理使用数据库表来存储消息 *. 可视化管理界面。 *. Applet支持。 *. 能够与Jakarta T

2、omcat这样的Servlet容器结合。 *. 支持RMI, TCP, HTTP 与SSL协议。 *. 客户端验证 *. 提供可靠消息传输、事务和消息过滤UberMQUberMQ完全实现了Java Message Service 规范。UberMQ是因为现有的许多JMS提供商已经违背了分布式计算的核心原则:快速与简单而开发的。Hermes JMS利用它提供的Swing UI可以很好的实现监控JMS providers。ActiveMQActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo,轻量级容器和任Java应用程序无缝

3、的给合。SomnifugiSomnifugi使得工作在同一个java虚拟机中的线程能实现消息互发。MantaRayMantaRay基于peer-2-peer 技术。它具有以下特性: 1.它既支持点对点(point-to-point)的域,又支持发布/订阅(publish/subscribe)类型的域。 2.并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。 3.消息过滤体制。 4.能与WebLogic and WebSphere 给合。 5.支持TCP, UDP 与 HTTP传输协。PresumoPresumo也是一个实现Java Message

4、 Service API的JMS消息中间件。JORAMJORAM一个类似于openJMS分布在ObjectWeb之下的JMS消息中间件。JMS4SpreadJMS4Spread是一个消息系统.它部分地实现了Java消息服务(JMS) API.Open Message QueueOpen Message Queue是Sun Java System Message Queue的一个开源版本。Open message queue是一个企业级,可升级,非常成熟的消息服务器。它为面向消息的系统集成提供一套完整的JMS(Java Message Service )实现。由于Open MQ源自Sun的Jav

5、a Message Queue,所以其具有Java System Message Queue拥有的所有特性,功能和性能 。FFMQFFMQ是一个轻量级,高性能,快速的Native JMS1.1开源实现。支持SSL远程连接,自动防故障的持久化机制,基于模板定义目的地(Destination),采用模式匹配自动创建目的地(Destination)。 MQSSave/MQSLoadMQSSave是一个简单的Java程序,能够读取MQSeries队列的消息保存至文件中。而MQSLoad是一相反的Java程序,能够读取文件中的消息然后加载至MQSeries队列中。HornetQHornetQ是一个支持集

6、群和多种协议,可嵌入、高性能的异步消息系统。HornetQ完全支持JMS,HornetQ不但支持JMS1.1 API同时也定义属于自己的消息API,这可以最大限度的提升HornetQ的性能和灵活性。在不久的将来更多的协议将被HornetQ支持。 HornetQ拥有超高的性能,HornetQ在持久化消息方面的性能可以轻易的超于其它常见的非持久化消息引擎的性能。当然,HornetQ的非持久化消息的性能会表现的更好! HornetQ完全使用POJO,纯POJO的设计让HornetQ可以尽可能少的以来第三方的包。从设计模式来说,HornetQ这样的设计入侵性也最小。HornetQ既可以独立运行,也可以

7、与其它Java应用程序服务器集成使用。 HornetQ拥有完善的错误处理机制,HornetQ提供服务器复制和故障自动转移功能,该功能可以消除消息丢失或多个重复信息导致服务器出错。 HornetQ提供了灵活的集群功能,通过创建HornetQ集群,您可以享受到到消息的负载均衡带来的性能提升。您也可以通过集群,组成一个全球性的消息网络。您也可以灵活的配置消息路由。 HornetQ拥有强大的管理功能。HornetQ提供了大量的管理API和监控服务器。它可以无缝的与应用程序服务器整合,并共同工作在一个HA环境中。Apache QpidApache Qpid是最新开放企业信息标准AMQP(Advanced

8、 Message Queuing Protocol)的一个开源实现。Java版实现完全支持JMS标准,可运行在任意Java平台上。此外Qpid还提供AMQP Client APIs的各种语言实现包括: C+ Java, fully conformant with JMS 1.1 C# .NET, 0-10 using WCF Ruby PythonSpring AMQPSpring AMQP是一个用于替换原先Spring JMS支持的消息解决方案。提供收发消息的模板,还支持基于消息驱动的POJO。用法和配置与Spring中对JMS的支持一样。这个项目包含Java和.NET两个版本。 Kafka

9、Kafka是一个高吞吐量分布式消息系统。linkedin开源的kafka。 Kafka就跟这个名字一样,设计非常独特。首先,kafka的开发者们认为不需要在内存里缓存什么数据,操作系统的文件缓存已经足够完善和强大,只要你不搞随机写,顺序读写的性能是非常高效的。kafka的数据只会顺序append,数据的删除策略是累积到一定程度或者超过一定时间再删除。Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器,这样服务器就不用记录消息的投递过程,每个客户端都自己知道自己下一次应该从什么地方什么位置读取消息,消息的投递过程也是采用客户端主动pull的模型,这样大大减轻了服务器的负担。Ka

10、fka还强调减少数据的序列化和拷贝开销,它会将一些消息组织成Message Set做批量存储和发送,并且客户端在pull数据的时候,尽量以zero-copy的方式传输,利用sendfile(对应java里的 FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销。可见,kafka是一个精心设计,特定于某些应用的MQ系统,这种偏向特定领域的MQ系统我估计会越来越多,垂直化的产品策略值的考虑。 play-rabbitmq这是Play! Framework开发框架的一个扩展模块。用于生产和消费RabbitMQ消息。 队列消息系统 FQueueFQue

11、ue是一个高性能、基于磁盘持久存储的队列消息系统。兼容memcached协议,能用memcached的语言都可以良好的与它通信。 FQueue为你提供一个不需要特别优化,高性能的一个消息系统。 特性1. 基于磁盘持久化存储。 2. 支持memcached协议。 3. 支持多队列,密码验证功能。 4. 高性能,能达到数十万qps。 5. 低内存消耗。100-300M内存即可工作得很好。 6. 高效率IO读写算法,IO效率高。 7. 纯JAVA代码。支持进程内JVM级别的直接调用。 8. 在不需要强顺序的场景下,支持多机负载均衡。 不支持1. 不支持topic方式的订阅功能。 2. 不支持主从复制

12、。 主流消息中间件及选型推荐:ActiveMQ:(还有升级版叫Apollo, 由于转向Scala,原来的架构都要改掉。但是只支持storm协议,不支持JMS),在网络上别人反映,消息量越来越大时,当出现消息堆积时,性能争骤下降,主要卡在磁盘写入,用了硬件加速,也还是不能忍受。消息中间件的技术选型心得RabbitMQ、ActiveMQ和ZeroMQ作者:chszs,转载需注明。博客主页:http:/ 都有客户端API且支持多种编程语言;2. 都有大量的文档;3. 都提供了积极的支持。ActiveMQRabbitMQZeroMQ遵循规范JMS1.1及j2ee1.4AMPQ-架构模型消息代理架构Br

13、oker消息代理架构Brokerc/s架构实现语言JavaErlangc/c+支持消息协议StompAMPQ、Stomp等-主要推动力量Apache、RedhatLshift、Vmware、SpringSourceIMatix支持编程语言C、Java、PythonC、Java、PythonC、Java、Python编程复杂度复杂简单中等持久化支持支持,不支持第三方数据库发送端缓存性能一般一般高三个经典消息中间件的比较 对于消息中间件,绝大多数熟悉的是 MQ(IBM公司出品),这是目前使用最广泛的中间件产品。还有两个也比较流行,他们是JMS和RV。JMS即JAVA消息服务(Java Message Service)应用程序接口是一个JAVA平台中关于面向消息中间件的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信,是一个与具体平台无关的API。TIBCO Rendezvous(或称为TIBCO RV)也是一种中间件,具有发布/订阅(Pu

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号