一、RabbitMQ
Rabbit使用Erlang语言开发的一款开源消息中间件,基于AMQP协议来进行实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布、订阅),RabbitMQ更多用于企业系统中,对安全性和稳定性可靠性有一定要求的应用场景,而对于性能和吞吐量的要求则放在次要的位置。社区活跃度非常高,版本维护更新几乎每个月发布几个版本。
二、ActiveMQ
ActiveMQ是Apach下面的一款最流行,功能最强劲的开源消息总线,支持JMS规范的消息中间件。它拥有丰富的API,多种集群构建模式使得它成为业界老牌消息中间件。在中小企业中广泛使用。我们常见的集群模式有主从模式(master - slave模式),利用zookeeper
在主从节点之间进行协调控制。ActiveMQ的应用越来越少
三、Kafka
Kafka目前属于Apach下面的一个顶级项目,Kafka仅仅提供较少的核心功能,不支持事务,但是提供超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展;缺点就是消息可能会出现重复消费的情况。所以不适用于对数据准确性有严格要求的项目。但是在大数据领域,这点数据上的差异是可以被接受的。所以Kafka常用于大数据领域实时计算与日志收集等,