RabbitMQ学习笔记(一)简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ONROAD0612/article/details/81951613

1、概述

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,也称之为面向消息的中间件。RabbitMQ中间件是用高性能、可伸缩性而闻名的Erlang语言编写而成的。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间件之一。

官网地址:http://www.rabbitmq.com

2、 AMQP

AMQP是一个面向消息中间件的开放式标准应用层协议。那么什么又是消息中间件呢?所谓消息中间见就是用于分布式 系统的服务之间的解耦,消息的发送者和消费者都不知道彼此的存在。AMQP主要有以下特点:

  • 消息方向
  • 消息队列
  • 消息路由(包括点到点和发布-订阅模式)
  • 可靠性
  • 安全性

由于AMQP是一个线路级协议,不同于JMS定义了一个API和一组消息收发必须实现的行为。因此只要满足该数据格式的消息发送和接收的工具都能互相兼容和进行操作。

由于RabbitMQ以AMQP协议实现的,所以它是支持多种编程语言和多种操作系统的。

3、 消息投递到队列的过程

首先我们来看一张RabbitMQ的系统架构图:

消息投递到队列的整个过程大致如下:

(1)客户端连接到消息队列服务器,打开一个Channel。

(2)客户端声明一个Exchange,并设置相关属性。

(3)客户端声明一个Queue,并设置相关属性。

(4)客户端使用Routing Key,在Exchange和Queue之间建立好绑定关系。

(5)客户端投递消息到Exchange.

(6)Exchange接收到消息后,根据消息设定的Eounting Key和Binding的绑定关系进行消息路由,投递到一个或多个Queue中。

从上图我们也可以看出RabbitMQ有两个重要的组件Exchange和Queue,绿色的就是Exchange,红色的是Queue,这两者都在 Server 端,又称作 Broker 。这部分是 RabbitMQ 实现的,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型。

4、 基本概念

(1)Broker,可以理解成消息队列服务器实体,即消息中间件,负责接收消息生产生发送的消息,并将消息发送给其余的消息消费者或者其他的Broker。

(2)Exchange,

猜你喜欢

转载自blog.csdn.net/ONROAD0612/article/details/81951613