常见消息中间件MQ介绍及对比

常见消息中间件MQ介绍

ActiveMQ
Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:in-VM, TCP, SSL, NIO, UDP, multicast, JGroups and JXTA transports。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。

Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性:

Kafka基本概念

Kafka是什么?

Kafka是一个由Scala和Java编写的企业级的消息发布和订阅系统。最早由LinkedIn公司开发,最终开源到Apache软件基金会的项目。Kafka是一个分布式的,支持分区的,多副本,多订阅者且基于zookeeper协调的高吞吐量的分布式消息系统,也是一个分布式流式处理平台。它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛应用在应用解耦、异步处理、限流削峰和消息驱动等场景。

Kafka基本概念

Producer:生产者,负责将消息发送至Kafka中,支持消息的异步发送和批量发送。

Consumer:消费者,消费者连接到Kafka上并接收消息;