activeMQ消息中间件

activeMQ消息中间件

ID:45096516

大小:1.18 MB

页数:15页

时间:2019-11-09

activeMQ消息中间件_第1页
activeMQ消息中间件_第2页
activeMQ消息中间件_第3页
activeMQ消息中间件_第4页
activeMQ消息中间件_第5页
资源描述:

《activeMQ消息中间件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、消息中间件分布式说明书第-15-页共15页第一章中间件选型1.1KafkaKafka是linkedin开源的MQ系统,主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输,0.8开始支持复制,不支持事务,适合产生大量数据的互联网服务的数据收集业务。1.2RabbitMQRabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP,SMTP,STOMP,也正因如此,它非常重量级,更适合于企业级的开发。结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发

2、和维护。1.3RocketMQ阿里巴巴的MQ中间件,在其多个产品下使用,并能够撑住双十一的大流量,他并没有实现JMS规范,使用起来很简单。部署由一个命名服务(nameserver)和一个代理(broker)组成,nameserver和broker以及producer都支持集群,队列的容量受机器硬盘的限制,队列满后可以支持持久化到硬盘(也可以自己适配代码,将其持久化到NOSQL数据库中),队列满后会影响吞吐量,可以采用主备来保证稳定性,支持回溯消费,可以在broker端进行消息过滤.1.4ActiveMQActiveMQ是Apache下的一个

3、子项目。历史悠久的开源项目,已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻松融合,实现了多种协议,如Ajax,REST,Stomp等,支持持久化到数据库,少量代码就可以高效地实现高级应用场景,可以很好的运行在任何JVM上,而不只是集成到JBoss的应用服务器中,对spring有很好的支持,支持大量的跨语言客户端。1.5ZeroMQZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ

4、能够应用成功的挑战。扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码。第-15-页共15页ActiveMQ消息中间件的选择从以下方面进行考虑:(1)activemq可以很好的运行在任何JVM上,而不只是集成到JBoss的应用服务器中;(2)activemq支持大量的跨语言客户端;(3)activemq支持许多不同的协议,如Ajax,REST,Stomp,OpenWire,XMPP(4)activemq支持许多高级功能,例如MessageGroups,Exclusi

5、veConsumer,CompositeDestinations(5)activemq支持可靠连接并且具有可配置的自动重连接(6)activemq对spring有很好的支持(7)activemq支持跨网络的分布式目的地(8)activemq是速度非常快;一般要比jbossmq快10倍(9)群集(Cluster):为了简化点对点通讯模式中的系统配置,MQ提供Cluster(群集)的解决方案。群集类似于一个域(Domain),群集内部的队列管理器之间通讯时,不需要两两之间建立消息通道,而是采用群集(Cluster)通道与其它成员通讯,从而大大简

6、化了系统配置。此外,群集中的队列管理器之间能够自动进行负载均衡,当某一队列管理器出现故障时,其它队列管理器可以接管它的工作,从而大大提高系统的高可靠性。一、activeMQ主要的几类部署方式比较1、默认的单机部署(kahadb)activeMQ的默认存储的单机方式,以本地kahadb文件的方式存储,所以性能指标完全依赖本地磁盘IO,不能提供高可用。第-15-页共15页2、基于zookeeper的主从(levelDBMaster/Slave)5.9.0新推出的主从实现,基于zookeeper来选举出一个master,其他节点自动作为slave

7、实时同步消息。因为有实时同步数据的slave的存在,master不用担心数据丢失,所以leveldb会优先采用内存存储消息,异步同步到磁盘。所以该方式的activeMQ读写性能都最好,特别是写性能能够媲美非持久化消息。优点:实现高可用和数据安全性能较好缺点:因为选举机制要超过半数,所以最少需要3台节点,才能实现高可用。3、基于共享数据库的主从(SharedJDBCMaster/Slave)可以基于postgres、mysql、oracle等常用数据库。每个节点启动都会争抢数据库锁,从而保证master的唯一性,其他节点作为备份,一直等待数据

8、库锁的释放。因为所有消息读写,其实都是数据库操作,activeMQ节点本身压力很小,性能完全取决于数据库性能。优点:实现高可用和数据安全简单灵活,2台节点就可以实现高可用缺点:稳

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。