一般情况下MQ的实现是要遵循一些常规性协议的,常见的协议如下:
JMS:
Java Messaging Service,是Java平台上有关MOM(Message Oriented Middleware 面向消息的中间件, PO/OO/AO)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生,发送,接收消息的接口,简化企业应用的开发,ActiveMQ是该协议的典型实现;
STOMP:
Streaming Text Oriented Message Protocol(面向流文本的消息协议),是一种MOM设计的简单文本协议,STOMP提供可互操作的连接方式,允许客户端与任意STOMP消息代理(Broker)进行交互,ActiveMQ是该协议的典型实现,RabbitMQ通过插件可以支持该协议;
AMQP:
Advanced Message Queuing Protocol(高级消息队列协议),一个提供统一消息服务的应用层标准,是应用层协议的一个开放标准,是一种MOM设计,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制,RabbitMQ 是该协议的典型实现;
MQTT:
Message Queuing Telemetry Transport(消息队列遥测传输),是IBM开发的一个即时通讯协议,是一种二进制协议,主要用于服务器和低功耗loT(物联网)设备间的通信。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当作传感器和制动器的通信协议,RabbitMQ通过插件可以支持该协议;