消息中间件知识地图整理
消息中间件知识地图整理
我是一名有着10年以上工作经验的IT从业人员,经验需要积累,知识需要整理,将整理的知识内容分享给需要的人
主流消息中间件所使用的协议
MQTT
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM 开发的一个即时通讯协议,基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter 让房屋联网)的通信协议。
优点:
- 格式简洁
- 占用带宽小
- 轻量级
适用于:
- 移动应用
- 物联网小型设备
- 嵌入式系统。
协议详细介绍参考文章:
https://zhuanlan.zhihu.com/p/421109780
AMQP
AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。
优点:
- 可靠
- 通用
适用于应用层消息通信.
STOMP
STOMP(Streaming Text Orientated Message Protocol)是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。STOMP 提供一个可互操作的连接格式,允许客户端与任意STOMP 消息代理(Broker)进行交互。
优点:命令模式(非topic\queue 模式)。
XMPP
XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时操作。核心是基于XML 流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
优点:
- 通用公开、兼容性强
- 可扩展
- 安全性高
缺点:XML 编码格式占用带宽大。
其他基于TCP/IP 自定义的协议
有些特殊框架(如:Redis、kafka、zeroMq等根据自身需要未严格遵循MQ 规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。
知识地图
学习资源