- AMQP(Advanced Message Queuing Protocol)高级消息队列协议
支持分布式、消息的持久化,高性能和高可靠的消息处理优势
rabbitMQ和ActiveMQ支该协议 由摩根大通集团联合其它公司共同设计。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中单件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件限制。Erlang中的实现有RabbitMQ等
- MQTT(Message Queueing Telemetry Transport):消息队列遥测传输协议
适用物联网,低宽带和网络不稳定状况
RabbitMQ和ActiveMQ支持该协议(但默认关闭支持,需要手动打开),MQTT是IBM开放的一个即时通讯协议,物联网架构中的重要组成部分。
特点:
- 轻量
- 结构简单
- 传输快,不支持事务
- 没有持久化设计
应用场景:
- 适用于计算能力有限的环境
- 低带宽
- 网络不稳定的场景
- OpenMessage协议
由阿里、雅虎和滴滴出行、Stremalia等公司共同参与创立的分布式消息中间件,流处理等领域的应用开发标准。
特点:
- 结构简单
- 解析速度快
- 支持事务和持久化设计
- Kafka协议
Kafka协议是基于TCP/IP的二进制协议。消息内部是通过长度来分割,由一些基本数据类型组成
特点:
- 结构简单
- 解析速度快
- 无事务支持
- 有持久化设计