赞
踩
1.ActiveMq,传统的消息队列,使用Java语言编写。基于JMS(Java Message Service),采用多线程并发,资源消耗比较大。支持P2P和发布订阅两种模式。
2.RabbitMQ,基于AMQP协议实现,支持多种场景,社区活跃量大。高性能,高可用,支持海量数据。
两者区别在于JMS和AMQP(此图取自别处),
JMS提供了两种消息模型,peer-2-peer(点对点)以及publish-subscribe(发布订阅)模型。当采用点对点模型时,消息将发送到一个队列,该队列的消息只能被一个消费者消费。而采用发布订阅模型时,消息可以被多个消费者消费。在发布订阅模型中,生产者和消费者完全独立,不需要感知对方的存在。
在AMQP中,消息路由(messagerouting)和JMS存在一些差别,在AMQP中增加了Exchange和binding的角色。producer将消息发送给Exchange,binding决定Exchange的消息应该发送到那个queue,而consumer直接从queue中消费消息。queue和exchange的bind有consumer来决定。(https://blog.csdn.net/hpttlook/article/details/23391967)
总结:1activemq基于jms,rabbitmq基于amqp
2前者组成producer-queue-consumer,后者组成producer-exchange-binding-queue-consumenr
3支持的模式不一样 前者支持点对点和发布订阅模式,后者简单模式,工作模式,发布订阅模式,路由模式,主题模式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。