那些年学过的消息队列(2) | 青训营

75 阅读2分钟

上一节课主要介绍了一些比较常见和流行的消息队列,分别介绍了他们大致的情况,并且进行了利弊的分析,本节课开始主要介绍RabbitMQ这个消息队列,首先有一些基本的概念需要我们明确。

RabbitMQ中的基本概念

Server 又称broker 接受客户端的连接 实现AMQP实体服务

Connection 连接 应用程序和Broker的网络连接

Channel 网络通道,几乎所有的操作都在channel中进行,是进行消息读写的通道 客户端可以建立多个channel,每个Channel代表一个会话任务

Message 消息 由properties 和 body组成,properties可以对消息修饰,比如消息的优先级、延迟等高级特性;body就是消息内容

Virtual host 虚拟地址 用于逻辑隔离 最上层的消息路由 一个Virtual host里面可以有若干个Exchange或Queue, 同一个Virtual host不能有相同名称的Exchange或Queue

Exchange 交换机 接收消息 根据路由键转发消息到绑定的队列

Binding Exchange和Queue之间的虚拟连接,binging中可以包含routingKey

RoutingKey 一个路由规则 虚拟机可以用它来确定如何路由一个特定消息

Queue 也称为MessageQueue 消息队列 保存消息并将他们转发给消费者

RabbitMQ高性能原因

  • Erlang语言最初是交换机领域中使用模式,在数据交换、数据同步、数据交互方面非常优秀
  • Erlang有点 Erlang有和原生Scoket一样的延迟,原生Scoket像Netty

AMQP 高级协议

AMPQ即Advanced Message Queuing Protocol,高级消息队列协议;是具有现代特征的二进制协议 ,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向对象的中间件设计,所以就是一个规范。

image.png