AMQP是什么
Advanced Message Queuing Protocal
该协议,使得遵从该协议的客户端应用和消息中间件服务器,可以进行全功能互操作。
AMQP模型 (典型的生产消费者模型)
RabbitMQ和AMQP关系
Rabbit公司基于AMQP V0.9.1 开发了RabbitMQ协议
RabbitMQ是一个功能强大并且开源的消息代理器
RabbitMQ 参考
https://github.com/mr-ping/RabbitMQ_into_Chinese
RabbitMQ Vs Kafka
RabbitMQ | Kafka | |
---|---|---|
架构模型 producer,broker,consumer | 以broker为中心,有消息的确认机制。 | 以consumer为中心,无消息的确认机制。 |
应用场景 | 用于实时的,对可靠性要求较高的消息传递上。 | 用于处理活跃的流式数据,大数据量的数据处理上。 |
吞吐量 | 支持消息的可靠的传递,支持事务,不支持批量操作,基于可靠性的存储,可以采用内存或硬盘,吞吐量小。 | 内部采用消息的批量处理,数据的存储和获取是本地磁盘顺序批量操作,消息处理的效率高,吞吐量高。 |
集群负载均衡 | 本身不支持负责均衡。 | 采用zookeeper对集群中的broker和comsumer进行管理;可以注册topic到zookeeper上,通过zookeeper的协调机制,producer保存对应的topic的broker信息,可以随机或者轮询发送到broker上,produce可以基于语义指定分片,消息发送到broker的某个分片上。 |