RabbitMQ快速入门 - 图像化界面的简单操作

目录

1、RabbitMQ的安装

2、RabbitMQ基本介绍

3、简单案例

4、数据隔离


1、RabbitMQ的安装

  • 官网链接:rabbitmq官网 (官网很详细,也可以在官网学习啦~)
    • 基础入门:
    • 自主学习:
    • 最新版本:
  • 安装我们是采取docker安装~
    • 安装命令:

      docker run -d --name mq \
       --restart=always \
       -e RABBITMQ_DEFAULT_USER=root \
       -e RABBITMQ_DEFAULT_PASS=1111 \
       -v ~/env/rabbitmq/lib:/var/lib/rabbitmq \
       -v ~/env/rabbitmq/log:/var/log/rabbitmq \
       -p 15672:15672 \
       -p 5672:5672 \
       rabbitmq:3.8-management
      
    • 命令解释:

      • docker run :创建并运行容器 ; -d:后台运行容器 ;
      • name:给容器起的名字; restart = always容器一直运行着
      • -e:是设置环境变量;第一个-e后面是设置了一个用户名root;第二个-e后面是设置了一个密码1111
      • -v:数据卷挂载;就是把rabbitmq下的目录映射到本机目录下的某个问题;
      • -p:端口映射;15672:控制台端口 - 图形化界面;5672:消息通信的端口
      • 最后一行是镜像名及版本号 (docker听不懂的可以去看我的docker专栏~)
    • 检查是否启动成功:

      • docker ps:
      • 浏览器访问:
        • 上述使用你命令中设置的用户名和密码进行登录就可以了~ 登陆成功后的页面:
    • 图形化界面解释:

      • 总览:就是大致的一些基本情况,后面遇到了在解释(其实很多字面意思大家都能理解什么意思)
      • 连接:发消息的人和收消息的人都是需要和rabbitmq建立连接的,在这里面进行连接操作
      • 通道:发消息使用的通道(例如你妈打电话叫你回家吃饭,这个手机就是一个通道)
      • 交换机、队列:文章下面会有解释
      • 管理员:就是一些用户管理相关的一些操作~

2、RabbitMQ基本介绍

RabbitMQ的整体架构及核心概念:

  • publisher:消息发送者
  • consumer:消息的消费者
  • queue:队列、存储消息
  • exchange:交换机,负责路由消息
  • virtual-host:虚拟主机,起到数据隔离的作用

结合图来理解:

上图的解释:

  • 消息发送者不是直接把消息塞到队列中,而是先把消息发到交换机,由交换机把消息路由到队列中;
  • 由上图可以发现交换机可以只路由给一个队列,也可以路由给所有队列;
  • 消费者监听队列,就可以拿到消息了~
  • RabbitMQ的服务端(消息代理)就包括了交换机和队列两部分 ~
  • 虚拟主机怎么理解:RabbitMQ的并发量很高,就可以支持多个项目都在同一套RabbitMQ服务下,但这么多项目中的交换机和队列就可能会有冲突,为了解决这种冲突就提出了数据隔离,类似于一个数据库服务器下有多个Database,各个Database间是数据隔离的~

3、简单案例

需求:在RabbitMQ的控制台(浏览器上的图形化界面)完成以下操作:

  • 新建队列hello.q1和hello.q2
  • 向默认的amp.fanout交换机发送一条消息
  • 查看消息是否到达hello.q1和hello.q2

步骤一:新建队列hello.q1和hello.q2

步骤二:向默认的amp.fanout交换机发送一条消息

报错了:

报错原因:消息发送了,但是没有路由~ 回顾我们前面说的,消息发送者把消息发给交换机,交换机把消息路由到队列中,所以报错就是我们没有配置这个路由呢~

解决:

然后我们再去发送消息,绑定了的队列就可以收到消息了,如下:

小结:

  • 交换机和队列绑定后才可以发消息,交换机不能存储消息,只能路由和转发消息

4、数据隔离

4.1、添加虚拟主机

前面提到了虚拟主机(类似于数据库中的Database),如何添加虚拟主机?操作如下:

相关推荐
lihuhelihu1 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
WX187021128731 小时前
在分布式光伏电站如何进行电能质量的治理?
分布式
不能再留遗憾了4 小时前
RabbitMQ 高级特性——消息分发
分布式·rabbitmq·ruby
茶馆大橘4 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
Diamond技术流4 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
材料苦逼不会梦到计算机白富美7 小时前
golang分布式缓存项目 Day 1
分布式·缓存·golang
想进大厂的小王7 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
Java 第一深情7 小时前
高性能分布式缓存Redis-数据管理与性能提升之道
redis·分布式·缓存
许苑向上8 小时前
【零基础小白】 window环境下安装RabbitMQ
rabbitmq
ZHOU西口9 小时前
微服务实战系列之玩转Docker(十八)
分布式·docker·云原生·架构·数据安全·etcd·rbac