RabbitMQ安装与基本概念

安装

本文只记录如何在Linux(Debian)上安装。

参考官网安装文档,直接把“PackageCloud Quick Start Script”部分的脚本复制粘贴运行即可。

在Linux上安装完成后,需要启用服务:

1
2
3
4
# 开机启动
systemctl enable rabbitmq-server
# 立刻启动
systemctl start rabbitmq-server

配置

管理界面开启

1
rabbitmq-plugins enable rabbitmq_management

管理网页端将会在本地的15672端口上,浏览器打开即可。

管理账号与密码

  • 方法一,创建新用户并设置权限组

    • 创建用户并设置密码

      1
      rabbitmqctl add_user 新用户名 新用户密码
    • 设置用户组?

      1
      rabbitmqctl set_user_tags 刚刚创建的用户名 administrator
    • 设置用户权限

      1
      rabbitmqctl set_permissions -p / 刚刚创建的用户名 "." "." ".*"
  • 方法二,修改配置文件(不推荐?但是网上的教程有人用这方法的)

    我发现在我的3.11.0版本的RabbitMQ上都找不到一样的文件了,就不写了。

默认情况下,guest/guest只能本地登录。

至此,你已经可以使用RabbitMQ进行开发了。

RabbitMQ概念

RabbitMQ的5大核心概念:Connection(连接)、Channel(信道)、Exchange(交换机)、Queue(队列)、Virtual host(虚拟主机)。

  • Connection(连接)

    每个producer(生产者)或者consumer(消费者)要通过RabbitMQ发送与消费消息,首先就要与RabbitMQ建立连接,这个连接就是Connection。Connection是一个TCP长连接。

    • Channel(信道)

      Channel是在Connection的基础上建立的虚拟连接,RabbitMQ中大部分的操作都是使用Channel完成的,比如:声明Queue、声明Exchange、发布消息、消费消息等。

      因为现在的程序都是支持多线程的,如果没有Channel,那么每个线程在访问RabbitMQ时都要建立一个Connection这样的TCP连接,对于操作系统来说,建立和销毁TCP连接是非常大的开销,在系统访问流量高峰时,会严重影响系统性能。

  • Virtual Host(虚拟主机)

    一个Broker中可以有多个虚拟主机,每个都有一套自己的Exchange和Queue,同一个Virtual host中的Exchange和Queue不能重名,不同的Virtual host中的Exchange和Queue名字可以一样。

    这样,不同的用户在访问同一个RabbitMQ Broker时,可以创建自己单独的虚拟主机,然后在自己的Virtual host中创建Exchange和Queue,很好地做到了不同用户之间相互隔离的效果。

    • Queue(队列)

      Queue是一个用来存放消息的队列,生产者发送的消息会被放到Queue中,消费者消费消息时也是从Queue中取走消息。

    • Exchange(交换机)

      Exchange是一个比较重要的概念,它是消息到达RabbitMQ的第一站,主要负责根据不同的分发规则将消息分发到不同的Queue,供订阅了相关Queue的消费者消费到指定的消息。

分发规则有:

  • 单收单发(简单模式)

  • 工作队列

  • 发布/订阅

  • 路由匹配

  • 主题模式(通配符)


RabbitMQ安装与基本概念
https://sodacooky.netlify.app/2022/RabbitMQ安装与基本概念/
作者
Sodacooky
发布于
2022年10月20日
许可协议