消息队列协议

什么是协议

在这里插入图片描述
我们知道消息中间件负责数据的传递、存储和分发消费三个部分,数据的存储和分发过程是要遵循协议的,我们是采用底层的TCP/IP协议还是UDP协议还是要自己构建,我们把这种规范称为协议

网络协议的三要素

  1. 语法。语法是用户数据与控制信息的结构和格式,以及数据出现的顺序。
  2. 语义,语义是解释控制信息每个部分的意义。他规定了需要发出何种控制信息以及完成的动作与做出的响应。
  3. 时序,时序是对事件发生顺序的详细说明。

人们形象地把这三个要素描述为:语义表示要做什么,语法表示要怎么做,时序表示做的顺序。
举个例子http协议

语法:http规定了请求报文和响应报文的格式
语义:客户端主动发起请求称为请求
时序: 一个请求对应一个响应(一定先有请求后有响应,这就是时序)

消息队列采用的协议不是http协议,常见的消息队列协议有:OpenWire,AMQP,MQTT,Kafka,OpenMessage等协议。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值