消息队列协议
创始人
2024-03-01 21:43:33
0

消息队列协议

什么是协议?

消息中间件负责数据的传递,存储,和分发消费三个部分,数据的存储和分发的过程中肯定要遵循某种约定成俗的规范,不管是采用底层的TCP/IP,UDP协议还是其他的自己去构建等,而这些约定成俗的规范就称之为:协议。

网络协议的三要素

1.语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。

比如:http规定了请求报文和响应报文的格式。

2.语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。

客户端主动发起请求称之为请求。(这是一种定义,同时你发起的是post/get请求)

3.时序。时序是对事件发生顺序的详细说明。

一个请求对应一个响应。(一定先有请求在有响应,这个是时序)

问题:

为什么消息中间件不直接使用http协议呢?

1: 因为http请求报文头和响应报文头是比较复杂的,包含了cookie,数据的加密解密,状态码,响应码等附加的功能,但是对于一个消息而言,我们并不需要这么复杂,也没有这个必要性,它其实就是负责数据传递,存储,分发就行,一定要追求的是高性能。尽量简洁,快速。
2:大部分情况下http大部分都是短链接,在实际的交互过程中,一个请求到响应很有可能会中断,中断以后就不会就行持久化,就会造成请求的丢失。这样就不利于消息中间件的业务场景,因为消息中间件可能是一个长期的获取消息的过程,出现问题和故障要对数据或消息就行持久化等,目的是为了保证消息和数据的高可靠和稳健的运行

AMQP协议

AMQP(Advanced Message Queuing Protocol)高级消息队列协议;是一个提供同一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可以传递消息,不受客户端/中间件的不同产品、不同开发语言等限制。底层是由Erlang(爱冷)语言开发的,典型的支持者有RabbitMQ、ActiveMQ。
特性:
1、分布式事务支持
2、消息的持久化支持
3、高性能、高可靠的消息处理优势

MQTT协议

支持者:RabbitMQ、ActiveMQ。
MQTT(Message Queueing Telemetry Transport)消息队列遥测传输协议,基于发布/订阅(Publish/Subscribe)模式的轻量级即时通讯协议,MQTT 最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议, MQTT 在物联网、小型设备、移动应用等方面有广泛的应用。追求极致的性能
支持者:RabbitMQ、ActiveMQ。
特点:
1、轻量
2、结构简单
3、传输快、不支持事务
4、没有持久化设计
应用场景:
1:适用于计算能力有限
2:低带宽
3:网络不稳定的场景。

OpenMessage协议

是由阿里、滴滴出行、雅虎等公司共同参与创立的分布式消息中间件、流处理等领域的应用开发标准。
支持者:Apache RocketMQ
特点:
1:结构简单
2:解析速度快
3:支持事务和持久化设计。

kafka协议

Kafka协议是基于TCP/IP的二进制协议。消息内部是通过长度来分割,由一些基本数据类型组成。
特点是:
1:结构简单
2:解析速度快
3:无事务支持
4:有持久化设计
Kafka协议是基于TCP/IP的二进制协议。消息内部是通过长度来分割,由一些基本数据类型组成。把消息转成二进制,直接传输,性能高,传输速度最快
特点:
1、结构简单
2、解析速度快
3、不支持事务
4、有持久化设计

协议:是在tcp/ip协议基础之上构建的一种约定成俗的规范和机制、它的主要目的可以让客户端(应用程序 java,go)进行沟通和通讯。并且这种协议下规范必须具有持久性,高可用,高可靠的性能。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...