Windows10环境下RabbitMq安装及实战

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求不高。

第一步:下载并安装Erlang

  • 官网下载地址:http://www.erlang.org/downloads
    注意:Erlang和RabbitMq版本需要对应,版本对应表:https://www.rabbitmq.com/which-erlang.html
    在这里插入图片描述
  • 下载下来双击->next 选择合适的安装目录安装
  • 安装完后,配制环境变量
    此电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建” 系统环境变量
    变量名:ERLANG_HOME
    变量值:你的安装目录
    在这里插入图片描述
    然后双击系统变量path
    点击“新建”,将%ERLANG_HOME%\bin加入到path中。
    在这里插入图片描述
  • 最后windows键+R键,输入cmd,再输入erl,看到版本号就说明erlang安装成功了。
    在这里插入图片描述
    第二步:下载并安装RabbitMq
    官网下载地址:http://www.rabbitmq.com/download.html
  • 下载下来.exe文件,双击->next 选择合适的安装目录安装
  • RabbitMQ安装好后接下来安装RabbitMQ-Plugins。打开命令行cmd,输入RabbitMQ的sbin目录。
  • 输入rabbitmq-plugins enable rabbitmq_management命令进行安装
    在这里插入图片描述
  • 双击sbin目录下的rabbitmq-server.bat 出现下图说明启动成功
    在这里插入图片描述
    访问 http://localhost:15672
    在这里插入图片描述
    默认账号guest 密码guest

基本使用介绍
在这里插入图片描述

  • connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况
  • channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。
  • Exchanges:交换机,用来实现消息的路由
  • Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移出队列。
    1、添加用户
    在这里插入图片描述
  • 超级管理员(administrator)
    可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
  • 监控者(monitoring)
    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  • 策略制定者(policymaker)
    可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
  • 普通管理者(management)
    仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
  • 其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。
    2、创建虚拟主机
    在这里插入图片描述
  • 虚拟主机
    为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。
    3、绑定虚拟主机和用户即给用户添加访问权限
    在这里插入图片描述
    在这里插入图片描述

AMQP协议模型
在这里插入图片描述
RabbitMq支持的消息模型

  1. 直连
    在这里插入图片描述
    在上图的模型中,有以下概念:

    • P:生产者,也就是要发送消息的程序
    • C:消费者:消息的接受者,会一直等待消息到来。
    • queue:消息队列,图中红色部分。类似一个邮箱,可以缓存消息;生产者向其中投递消息,消费者从其中取出消息。
  2. work queue模型
    又称task queues,任务模型。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以使用work 模型:让多个消费者绑定到一个队列,共同消费队列中的消息。队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。
    在这里插入图片描述

  3. fanout模型
    扇出,又称为广播,在广播模式下,消息发送流程是这样的:

    • 可以有多个消费者
    • 每个消费者有自己的queue(队列)
    • 每个队列都要绑定到Exchange(交换机)
    • 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。
    • 交换机把消息发送给绑定过的所有队列
    • 队列的消费者都能拿到消息。实现一条消息被多个消费者消费
      在这里插入图片描述
  4. Rounting路由模式
    4.1 Routing 之订阅模型-Direct(直连)
    在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。
    在Direct模型下:

    • 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)
    • 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey
    • Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的 Routing key完全一致,才会接收到消息
      在这里插入图片描述
  • P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。
  • X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列
  • C1:消费者,其所在队列指定了需要routing key 为 error 的消息
  • C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息
    4.2 Routing 之订阅模型-Topic
    Topic类型的ExchangeDirect相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!这种模型Routingkey 一般都是由一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert
    在这里插入图片描述
# 统配符
		* (star) can substitute for exactly one word.    匹配不多不少恰好1个词
		# (hash) can substitute for zero or more words.  匹配一个或多个词
# 举例:
	audit.#    匹配audit.irs.corporate或者 audit.irs 等
    audit.*   只能匹配 audit.irs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值