activemq

ActiveMQ/RabbitMQ/Kafka的区别

ε祈祈猫儿з 提交于 2019-11-30 21:24:17
对于异步消息组件在实际的应用之中会有两类: · JMS:代表作就是 ActiveMQ,但是其性能不高,因为其是用 java 程序实现的; · AMQP:直接利用协议实现的消息组件,其大众代表作:RabbitMQ,高性能代表作:Kafka。 2.实际开发之中 90%环境下常用的三个消息组件:ActiveMQ、RabbitMQ、Kafka 的全部定义都在此处,以后你们所从事的开发 里面一定会有消息组件的身影。消息组件带来的最直观好处:数据缓冲,可以保证消息不丢失。 面试题:请解释一下 ActiveMQ 与 RabbitMQ 区别? · ActiveMQ 使用的是 JMS 协议处理,所以性能比较差,在 ActiveMQ 里面其组成比较简单就是进行主题或者是队列消息的 处理; ·RabbitMQ 使用的是 AMQP 处理,该处理属于一种协议处理,所以处理的性能会比较高,在 RabbitMQ 里面提供有 exchange、 queue、bind 的概念,所有的用户提交的消息发送给 exchange,而后由 bind 绑定 exchange 与 queue,最后根据 routingkey 进行消息 的发送处理,利用这一概念可以实现 fanout(广播)、topic(主题)、direct(直连)的操作处理。同时在 Rabbitmq 之中还通过有虚 拟主机的概念

RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,资料汇总

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 21:23:58
MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求。下面我列出这些MQ之间的对比数据和资料。 第一部分: RabbitMQ,ActiveMq,ZeroMq 比较 1、 TPS 比较 一 ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。这个结论来自于以下这篇文章。 http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/ 测试环境: Model: Dell Studio 1749 CPU: Intel Core i3 @ 2.40 GHz RAM: 4 Gb OS: Windows 7 64 bits 其中包括 持久化 消息和 瞬时 消息的测试。注意这篇文章里面提到的 MQ ,都是采用 默认配置 的,并无调优。 更多的统计图请参看我提供的文章url。 2 、 TPS 比较 二 ZeroMq 最好, RabbitMq 次之, ActiveMq 最差。这个结论来自于一下这篇文章。 http://www.cnblogs.com/amityat/archive/2011/08/31/2160293.html

java消息中间件,ActiveMQ、RabbitMQ和Kafka之间的选择

只谈情不闲聊 提交于 2019-11-30 21:23:20
消息中间件用于处理异步消息 优点: 系统解耦、异步、横向扩展、安全可靠,保存消息直到消息调用完全部服务处理完后 什么是中间件? 非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件。 什么消息中间件? 关注于数据的发送和接收,利用高效可靠的异步消息传递机制集成分布式系统 什么是JMS JMS即java消息服务(java Message Service),是一个java中关于面向消息中间件的API,用于在两个应用程序间或分布式系统中发送消息,进行异步通信。 什么是AMQP? AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端和中间件可传递消息。 常见的消息中间件 ActiveMQ,完全支持JMS和J2EE,支持多语言和多协议 RabbitMQ,是一个开源的AMQP实现,用于在分布式系统中存储转发消息。扩展性、易用性、高可用性等方面表现不俗。支持多客户端多语言,是AMQP的完整实现, Kafka(主要是日志服务), 一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务,它通过一种独一无二的设计提供了一个消息系统的功能 ActiveMQ、RabbitMQ和Kafka的区别: JMS概念 提供者、客户端、生产者/发布者

activemq、rabbitmq、kafka原理和比较

a 夏天 提交于 2019-11-30 21:22:53
一、activemq 虽然是java写的消息队列,但是提供Java, C, C++, C#, Ruby, Perl, Python, PHP各种客户端,所以语言上是没什么问题的。配置和使用,基本上是java xml这一套。同时对jms、spring之类的支持很友好。 而且因为是Java写的,所以可以作为一个jar包,放到java项目里,用代码启动和配置,这个对于java开发者而言是不是相当爽?毕竟还是有些场景,需要我们把队列放到自己项目内部,随项目启动而启动的。而且,还可以类似拓展tomcat一样,自己写java的plugin来拓展activemq。比如说,我有10万硬件连到mq上,这10万设备每个都有用户名密码,这个时候我们可以用java写个权限验证,从数据库里查这10万用户名密码。 activemq支持主从复制、集群。但是集群功能看起来很弱,只有failover功能,即我连一个失败了,可以切换到其他的broker上。这一点貌似不太科学。假设有三个broker,其中一个上面没有consumer,但另外两个挂了,消息会转到这个上面来,堆积起来。看样子activemq还在升级中。 activemq工作模型比较简单。只有两种模式 queue,topics 。 queue就多对一,producer往queue里发送消息,消费者从queue里取,消费一条,就从queue里移除一条

消息中间件ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、Kafka如何选型?

戏子无情 提交于 2019-11-30 21:22:19
最近要为公司的消息队列中间件进行选型,市面上相关的开源技术又非常多,如ActiveMQ、RabbitMQ、ZeroMQ、Kafka,还有阿里巴巴的RocketMQ等。 这么多技术,如何进行选型呢? 首先对于阿里的RocketMQ,因为是阿里开源的,对于国内开源的保持谨慎的态度,暂时不采取该中间件。 所以只能在ActiveMQ、RabbitMQ、ZeroMQ、Kafka中间选一款作为消息队列中间件。 下面从几个维度来对比下 1、社区活跃度 从目前网上的资料上看,RabbitMQ、activeMQ、ZeroMQ三者中RabbitMQ绝对是首选。 2、消息持久化 ZeroMq不支持消息持久化,ActiveMQ和RabbitMQ都支持。 3、核心技术 可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统等等。 RabbitMq / Kafka最好,ActiveMQ次之,ZeroMQ最差。当然ZeroMQ也可以做到,不过自己必须手动写代码实现,工作量不小。尤其是可靠性中的:持久性、投递确认、发布者证实和高可用性。 4、高并发 毋庸置疑RabbitMQ最高,因为RabbitMQ是由天生具备高并发高可用特性的erlang语言实现的。 以上对比参考来源网络,大同小异。总结就是需要从RabbitMQ和Kafka之间选一款适合自己的

消息中间件解决方案JMS--ActiveMQ入门

故事扮演 提交于 2019-11-30 21:22:07
JMS入门 消息中间件 品优购系统模块调用关系分析 我们现在讲品优购已经完成的功能模块梳理如下: 我们已经完成了5个web模块和4个服务模块。其中运营商后台的调用关系最多,用到了商家商品服务、广告内容服务、搜索服务和页面生成服务。这种模块之间的依赖也称之为耦合。而耦合越多,之后的维护工作就越困难。那么如果改善系统模块调用关系、减少模块之间的耦合呢?我们接下来就介绍一种解决方案----消息中间件。 什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者) 常见的消息中间件产品: (1)ActiveMQ ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。我们在本次课程中介绍 ActiveMQ的使用。 (2)RabbitMQ AMQP协议的领导实现,支持多种场景。淘宝的MySQL集群内部有使用它进行通讯,OpenStack开源云平台的通信组件,最先在金融行业得到运用。 (3)ZeroMQ 史上最快的消息队列系统 (4)Kafka

Autoreconnect problem with ActiveMQ and CachingConnectionFactory

社会主义新天地 提交于 2019-11-30 21:19:50
I'm having a problem with ActiveMQ and Spring's CachingConnectionFactory . I'm setting them up like this: <!-- A connection to ActiveMQ --> <bean id="myConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="${jms.url}"/> <property name="userName" value="${jms.username}"/> <property name="password" value="${jms.password}"/> </bean> <!-- A cached connection to wrap the ActiveMQ connection --> <bean id="myCachedConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory"> <property name="targetConnectionFactory" ref=

Unable to bind to a port on Openshift

自古美人都是妖i 提交于 2019-11-30 21:16:35
I am running an embedded activemq message server in my application on openshift. According to this , you can only bind on 15000 - 35530 . I've tried doing the following, but it's throwing a serious error. What could be the issue? I am using spring . This is a part in my applicationContext.xml <amq:broker brokerName="tentacle-broker" start="true"> <amq:persistenceAdapter> <amq:amqPersistenceAdapter directory="/var/lib/openshift/username/jbossews-2.0/jbossews-2.0/activemq2" maxFileLength="32mb"/> </amq:persistenceAdapter> <amq:transportConnectors> <amq:transportConnector uri="tcp://127.10.180

activeMQ5官方文档翻译-运行消息中间件

寵の児 提交于 2019-11-30 20:44:37
把activeMQ中间件运行起来 注:如果你想以内嵌的方式来使用消息中间件的话你可以参照 怎么在一个连接中间嵌入消息中间件 以 二进制文件 的方式分发的 ActiveMQ自带了一个 'activemq'的脚本文件来运行启动一个消息中间件。 如果想了解activemq更详细的启动脚本可以回顾 Unix shell脚本 和 ActiveMQ命令行工具参考 Typing the following will run an ActiveMQ Broker using the out of the box configuration in the foreground 输入下面的命令....(后面的不知道怎么来翻译) bin/activemq console (译者注:在最新的5.11.1版本中要根据本机操作系统的情况进入对应的目录来才能这个命令,比如我的电脑是64位的win8,则输入以下命令: bin/win64/activemq console 你也可以使用 URI配置 的方式来配置启动参数,比如: bin/activemq console broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true 或者你也可以根据需要使用 xml配置文件 以