- 常见开放式协议:AMQP、MQTT、STOMP、XMPP等
- 有些特殊框架(Redis,kafka)根据自己的自身需要未严格按照MQ规范,根据TCP/IP自行封装的一套协议
- AMQP协议:
- Advanced Messages Queueing Protocol (AMQP) 于2004年开发,2006年发布;
- 目前AMQP协议的版本是通过两个或者三个数字表示的,格式为major-minor[-revision]或major.minor[.revision]。major 是主版本号,minor是次版本号,revision是可选的修订版本号,他们都可以是0~99之间的一个数字,
- AMQP协议内容:基本概念、功能命令和传输层协议
- 基本概念:指AMQP内部定义的个组件的功能说明
- 功能命令:指该协议所定义的一系列命令,应用程序可以基于这些命令来实现相应的功能
- 传输层协议:是一个网络协议,它定义了数据的传输格式,消息队列的客户端可以基于这个协议与消息代理和AMQP的相关模型进行交互通信,该协议的内容包括数据帧处理、信道复用、内容编码、心跳监测、数据表示和错误处理等
- 主要概念
- Message:消息
- Publisher:消息生产者
- Exchange:交换器
- Binding:绑定
- Virtual Host:虚拟主机
- Broker:消息代理
- Routing Key:路由规则
- Queue:消息队列
- Connection:连接
- Channel:通道
- Consumer:消息消费者
- 核心组件的生命周期:
- 消息的生命周期
- 消息的流转过程:Publisher产生一条数据,发送到Borker,Broker中的Exchange可以被理解为一个规则表(Routing-key和Queue的映射关系–Binding)Broker收到消息后根据Routing Key查询投递的目标Queue,Consumer向Broker发送订阅消息时会指定自己监听哪个queue,当收数据到达queue时broker会推送数据到Consumer
- 交换器的生命周期
- 每台AMQP的服务器都会预先创建许多交换器实例,它们在服务器启动时就存在并且不能被销毁
- 队列的生命周期
- 持久化消息队列和临时消息队列
- 持久化消息队列可被多个消费者共享,不管是否有消费者接收,他们都可以独立存在。
- 临时消息队列对某个消费者是私有的,只能绑定到此消费者,当消费者断开连接,该消息队列将被删除
- 消息的生命周期
- MQTT协议:Message Queuing Telemetry Transport消息队列遥测传输,是一种即时通信协议
- STOMP协议:Streaming Text Orientated Messaging Protocol,流文本定向消息协议,是一个简单的文本消息传输协议
- XMPP协议:可扩展通信与表示协议,是一种基于XML的流式即时通信协议
- JMS:Java Message Service即Java消息服务应用程序接口
- Java平台中面向消息中间件的一套规范的Java API接口,用于在两个应用程序之间或分布式系统中发送消息,进行异步通信
- 体系架构、
- 点对点模型
- 发布订阅模型
常用的消息协议
最新推荐文章于 2025-01-29 17:40:10 发布