RabbitMQ实战教程(一) : 安装及相关概念介绍

RabbitMQ实战教程(一) : 安装及相关概念介绍

  • 由于本人只在Windows安装 RabbitMQ 服务 ,其他系统安装暂时没有涉及,如果有需要请自行搜索安装教程. . .

1 . Windows 安装

Windows安装需要先安装Erlang,再安装RabbitMQ

  • 第一步:安装Erlang OTP,由于RabbitMQ是用Erlang编写的,所以在安装RabbitMQ之前要先安装Erlang 下载地址:http://www.erlang.org/downloads 下载最新版本即可,例如OTP 21.0.1 Windows 64-bit Binary File, 下载完成后解压,双击otp_win64_21.0.1.exe 一路next即可,安装成功后需要配置环境变量,可以新建一个变量,例如ERLANG_HOME=D:\erl9.2,最后将环境变量追加到Path中去Path中追加:%ERLANG_HOME\bin%

  • 第二步:安装RabbitMQ,在官网上下载最新的RabbitMQ(http://www.rabbitmq.com/) 双击rabbitmq-server-3.7.6 一路next即可,安装成功后同样需要配置环境变量,将D:\RabbitMQ\rabbitmq_server-3.6.10\sbin追加到Path中 . rabbitmq-server-3.7.6 版本是不需要安装 RabbitMQ Management插件 ,好像 3.7 之前的版本是需要安装 RabbitMQ Management插件的 .

  • 第三步 : 安装成功后打开浏览器输入以下地址 http://localhost:15672/ 就可以看下如下页面 :

    使用访客账号(username : guest , password : guest) 就可登录进去 ,页面如下所示 :

  • 至此 RabbitMQ 服务安装完成

2 . 相关概念介绍

2.1 简介

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,消息队列是一种应用系统之间的通信方法,是通过读写出入队列的消息来通信(RPC则是通过直接调用彼此来通信的)

AMQP(Advanced Message Queuing Protocol)高级消息队列协议是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

2.2 基本概念

  • ConnectionFactory(连接工厂) : 生产Connection的工厂 .
  • Connection(连接) : 是RabbitMQsocket的长连接,它封装了socket的协议相关部分逻辑.
  • Channel(信道) : 是建立在Connection连接之上的一种轻量级的连接,我们大部分的业务操作是Channel这个接口中完成的 ,包括定义队列的声明queueDirect 、交换机声明exchangeDeclare 、队列的绑定queueBind、发布消息的basicPublish、消费消息的basicConsume等 . 如果把Connection比作一条光纤电缆的话,那么Channel信道就比作成光纤电缆中其中的一束光纤 . 一个Connection可以创建任意数量的Channel 信道 .
  • Producet(生产者) : 生产者用于发布消息 .
  • Exchange(交换机): 生产者会将消息发送到交换机,然后交换机通过路由路由规则将消息路由到匹配到队列中 .
  • RoutingKey(路由键) : 一个String,用于定义路由规则,在队列绑定的时候需要指定路由键,在生产者发布消息时需要指定路由键,当消息的路由键和队列绑定的路由键相匹配时,消息就会发送到该队列.
  • Queue(队列) : 用于存储消息容器,可以看成一个有序的数组,生产者生产的消息会发送到交换机中,最终交换机将消息存储到某个或某些队列中,队列可被消费者订阅,消费者从订阅的队列中获取消息 .
  • Binding(绑定) : Binding并不是一个概念,而是一种操作,RabbitMQ中通过绑定,以路由键作为桥梁将ExchangeQueue关联起来(Exchange --> RoutingKey -->Queue) ,这样RabbitMQ就知道如何正确地将消息路由到指定的队列了,通过queueBind方法ExchangeRoutingKeyQueue绑定起来 .
  • Consumer(消费者) : 用于从队列中获取消息,消费者只需要关注队列即可,不需要关注交换机和路由键,消费者可以通过basicConsume(订阅模式可以从队列中一直持续的自动接收消息)或者basicGet(先订阅消息,然后获取单条消息,再然后取消订阅,也就是说basicGet一次只能获取一条消息,如果还想获取下一条还要再次调用basicGet来从队列中获取消息) .
  • vhost(虚拟主机) : RabbitMQ 通过虚拟主机(virtual host)来分发消息 ,拥有自己独立的权限控制, 不同vhost之间是隔离的、单独的 ,vhost是权限控制的基本单位,用户只能访问与之绑定的vhost ,默认vhost : "/" ,默认用户 "guest" ,默认密码 "guest" , 来访问默认的vhost .

下面说明了生产将消息发送到交换机中,然后又路由到指定的队列中. 消息者从指定的队列中消费消息

猜你喜欢

转载自www.cnblogs.com/makesailing/p/9660369.html