RabbitMQ 笔记(一)

消息队列

生产-消费
可靠生产和可靠消费

队列协议

一、网络协议的三要素

  1. 语法
  2. 语义
  3. 时序

消息中间件采用的并不是http协议,而常见的消息中间件协议有:OpenWire、AMQP、MQTT、Kafka、OpenMessage

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

  1. http协议比较复杂,包含了cookie,数据加密,状态码、响应码等附加的功能,消息中间件不需要这么饿复杂,它主要负责数据传递,存储,分发。追求的是高性能,因此要简洁、快速
  2. 大部分情况下http是短连接,实际交互中,一个请求响应可能会终端,中断后无法持久化,造成数据丢失,不利于业务场景。因此消息中间件是一个长期的获取消息的过程,出现问题和故障要对数据或消息进行持久化等,保证数据的高可靠和稳健运行

二、AMQP协议

高级消息队列协议
开发公司: 摩根大通 开发语言:Erlang
特点:

  1. 分布式事务支持
  2. 消息的持久化支持
  3. 高性能和高可靠的消息处理优势

三、MQTT协议

即使通讯协议、物联网系统架构中的重要组成部分
开发公司: IBM
特点:

  1. 轻量
  2. 结构简单
  3. 传输快、不支持事务
  4. 没有持久化设计

应用场景:

  1. 适用于计算能力有限
  2. 低带宽
  3. 网络不稳定的场景

四、Kafka协议

性能最高
基于TCP/IP的二进制协议,消息内部通过长度来分割,由一些基本数据类型组成
特点:

  1. 结构简单
  2. 解析速度快
  3. 无事务支持(在分布式场景中,显得无力)
  4. 有持久化设计
posted @ 2021-09-21 13:16  G1011  阅读(36)  评论(0)    收藏  举报