RabbitMQ 和 RocketMQ 区别与选型

一 概述

MQ(Message Queue)是典型的生产者消费者模型,没有业务逻辑侵入,实现生产者和消费者的解耦。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。

二 AMQP和JMS

MQ是消息通信的模型,并发具体实现。现在实现MQ的有两种主流方式:AMQP、JMS。
RabbitMQ 和 RocketMQ 区别与选型_第1张图片
RabbitMQ 和 RocketMQ 区别与选型_第2张图片
两者的区别和联系:

  • JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
  • JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
  • JMS规定了两种消息模型;而AMQP的消息模型更加丰富

三 实现

1. RabbitMQ
是基于AMQP 协议的 具有跨语言的特性,支持多种开发语言,基于erlang语言编写,天生具有高并发.
2. rocketMQ
是基于JMS的 是阿里巴巴旗下开发的mq,现在可以多语言接入,声称可用性极高,消息从来不会丢失.
具体比较(偷来的图):
RabbitMQ 和 RocketMQ 区别与选型_第3张图片

你可能感兴趣的:(mq,rabbitmq,java)