RabbitMQ 第1章 RabbitMQ部署

网友投稿 573 2022-05-29

一、概述

RabbitMQ(Message Queue)是当前流行的开源的消息队列系统,用ERLang语言开发,按照AMQP(Advanced Message Queue Protocol)的标准实现,消息队列是一种应用程序对应用程序之间的通信方法,应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,则无需专用链接来链接它们,RabbitMQ便是这样一种用于应用程序之间通信的中间件。

二、架构

RabbitMQ的架构图如下:

在此有几个概念需要说明一下:

1、Exchange:消息交换机,它指定消息按照什么规则,路由至哪个队列。

2、Queue:消息队列载体,每个消息都会被投入到一个或者多个队列中。

3、Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。

4、Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

5、vhost:虚拟主机,一个broker里面可以开设多个vhost,用作不同用户的权限分离。

6、producer:消息生产者,就是投递消息的程序。

7、consumer:消息消费者,就是接受消息的程序。

8、channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

9、Broker:简单来说就是消息队列服务器实体。

消息投递过程大致如下:

客户端连接到消息队列服务器,打开一个channel。

客户端声明一个exchange,并设置相关属性。

客户端声明一个queue,并设置相关属性。

客户端使用routing key,在exchange和queue之间建立绑定好关系。

客户端投递消息到exchange。

exchange接收到消息后,根据消息的key和已经设置好的binding,进行消息路由,将消息投递到一个或者多个队列里。

RabbitMQ几个特性:

1、exchange支持多种类型,有fanout、direct、topic、header等,每种类型的都有自己不同的使用场景和性能。

2、RabbitMQ支持消息的持久化,也就是数据写在磁盘上,为了数据的安全,我想大多数用户都选择持久化,消息队列持久化包括3个部分:

exchange持久化,在声明时指定durable=>1

RabbitMQ 第1章 RabbitMQ部署

queue持久化,在声明时指定durable=>1

消息持久化,在投递时指定delivery_mode=>2(此处1是非持久化)

注意:如果exchange和queue都是持久化的,那么它们之间的binding也是持久化的,如果exchange和queue两者之间有一个持久化,一个非持久化,就不允许建立绑定。

三、安装

基于windows 32位操作系统的安装部署:

1、下载ERLang。(百度其官网)

2、安装ERLange,运行下载的安装程序即可,默认安装。

3、安装完成之后,设置ERLang的环境变量,首先建立一个ERL_HOME的变量,如下图所示:

4、下载rabbitmq-server-3.1.5.exe,并安装.(百度其官网)

5、启动rabbitma-start开启rabbit-server服务,启动过程【开始】--->【程序】--->【RabbitMQ Server】--->【RabbitMQ Service - start】,此时rabbitMQ-server就启动了。

RabbitMQ

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【精选单品】华为云云市场携手中软国际云·智慧园区,以信息、资源、服务支撑高效智慧办公,共克疫情!
下一篇:【愚公系列】2022年04月 .NET架构班 039-分布式中间件 ShardingSphere-Proxy之分库
相关文章