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),如何添加虚拟主机?操作如下:

相关推荐
哈哈哈笑什么1 天前
企业级高并发分布式SpringCloud系统下,订单动态超时自动取消(最终成熟方案),使用spring-cloud-starter-stream-rabbit
分布式·spring cloud·rabbitmq
哈哈哈笑什么1 天前
Sleuth+Zipkin 与 OpenSearch 结合是企业级分布式高并发系统的“王炸组合”
分布式·后端·spring cloud
一只懒鱼a1 天前
docker搭建rabbit集群
docker·容器·rabbitmq
哈哈哈笑什么1 天前
在高并发分布式SpringCloud系统中,什么时候时候并行查询,提高查询接口效率,从10s到100ms
java·分布式·后端
阿杰同学1 天前
Hadoop 面试题及答案整理,最新面试题
大数据·hadoop·分布式
Winter_Sun灬1 天前
CentOS 7 编译安卓 arm64-v8a 版 OpenSSL 动态库(.so)
android·linux·centos
听风吟丶1 天前
微服务分布式事务实战:从数据一致性到故障恢复全方案
分布式·微服务·架构
丿BAIKAL巛1 天前
如何解决CentOS启动时XFS 文件系统的元数据损坏问题
linux·运维·centos
ClouGence1 天前
从 0 到 1 构建 TDSQL MySQL 实时同步链路
数据库·分布式·sql·mysql
哈哈哈笑什么1 天前
完整Redis分布式锁技术方案(基于Redisson)
redis·分布式·spring cloud