【2.0】RabbitMQ安装

【一】RabbitMQ是什么

【1】介绍

  • RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
  • AMQP :Advanced Message Queue,高级消息队列协议。
    • 它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
  • RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

【2】特点

1.可靠性(Reliability)

  • RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。

2.灵活的路由(Flexible Routing)

  • 在消息进入队列之前,通过 Exchange 来路由消息的。
  • 对于典型的路由功能,RabbitMQ已经提供了一些内置的 Exchange 来实现。
  • 针对更复杂的路由功能,可以将多个Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。

3.消息集群(Clustering)

  • 多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker

4.高可用(Highly Available Queues)

  • 队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。

5.多种协议(Multi-protocol)

  • RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。

6.多语言客户端(Many Clients)

  • RabbitMQ 几乎支持所有常用语言,比如 Java、.NET、Ruby 等等。

7.管理界面(Management UI)

  • RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。

8.跟踪机制(Tracing)

  • 如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。

9.插件机制(Plugin System)

  • RabbitMQ 提供了许多插件,来从多方面进行扩展,也可以编写自己的插件。

【二】服务端原生安装

  • 安装配置epel源
  • 安装erlang
yum -y install erlang
  • 安装RabbitMQ
yum -y install rabbitmq-server

【三】服务端Docker安装

  • docker运行
docker pull rabbitmq:management
  • 一个端口是web界面的端口,另一个端口是服务端口
    • web 管理页面的端口是 15672
    • 服务端口是5672,使用python连接时候,指定这个端口
docker run -di --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
  • 查看容器
[root@VM-8-11-opencloudos ~]# docker pull rabbitmq:management
management: Pulling from library/rabbitmq
7b1a6ab2e44d: Pull complete 
37f453d83d8f: Pull complete 
e64e769bc4fd: Pull complete 
c288a913222f: Pull complete 
12addf9c8bf9: Pull complete 
eaeb088e057d: Pull complete 
b63d48599313: Pull complete 
05c99d3d2a57: Pull complete 
43665bfbc3f9: Pull complete 
f14c7d7911b1: Pull complete 
Digest: sha256:4c4b66ad5ec40b2c27943b9804d307bf31c17c8537cd0cd107236200a9cd2814
Status: Downloaded newer image for rabbitmq:management
docker.io/library/rabbitmq:management

[root@VM-8-11-opencloudos ~]# docker run -di --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
aa1d0a36478966b48d1f1869b8041f09fb3a3da00f71f4b980c9539f12c7dc41

[root@VM-8-11-opencloudos ~]# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED         STATUS                   PORTS                                                                                                                                                 NAMES
aa1d0a364789   rabbitmq:management                    "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds             4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp   Myrabbitmq

【四】客户端安装

pip3 install pika

【五】设置用户和密码

rabbitmqctl add_user dream 123
  • 设置用户为administrator角色
rabbitmqctl set_user_tags dream administrator
  • 设置权限
rabbitmqctl set_permissions -p "/" dream ".*" ".*" ".*"
  • 然后重启rabbiMQ服务
systemctl reatart rabbitmq-server
  • 然后可以使用刚才的用户远程连接rabbitmq server了
  • 如果是在Docker部署的
# 进入容器
[root@VM-8-11-opencloudos ~]# docker exec -it rabbitmq容器ID /bin/bash

# 设置用户名和密码
root@aa1d0a364789:/# rabbitmqctl add_user 用户名 密码
Adding user "用户名" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.root@aa1d0a364789:/# rabbitmqctl set_user_tags 用户名 administrator
Setting tags for user "用户名" to [administrator] ...

# 设置权限
root@aa1d0a364789:/# rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*"
Setting permissions for user "用户名" in vhost "/" ...

【六】界面说明

【1】登录界面

  • 用户名和密码是我们在docker安装时设置的环境变量
    • admin
    • admin

image-20230909172155129

【2】管理界面总览

无标题-2023-09-09-1724

  • 登录RabbitMQ管理页面后,会看到以下几个主要部分:

  • Overview: 这个页面显示了RabbitMQ服务器的一般信息,例如节点的名字、状态、运行时间等。

  • Connections: 在这里,可以查看、管理和关闭当前所有的TCP连接。

  • Channels: 这个页面展示了所有当前打开的通道以及它们的详细信息。

  • Exchanges: 可以在这里查看、创建和删除交换机。

  • Queues: 这个页面展示了所有当前的队列以及它们的详细信息。

  • Admin: 在这里,可以查看系统中所有的操作用户。

【2】Connections(连接)

image-20230909173138369

  • 在RabbitMQ的管理页面中,Connections 部分列出了所有当前的TCP连接。
  • 每个连接都关联了它的详细信息,如用户、主机、运行状态等。

【3】Channels(通道)

  • Channels 页面列出了所有当前的通道。
  • 通道在RabbitMQ中扮演着重要的角色,所有的消息发布和接收都是通过通道进行的。

image-20230909173304388

【4】Exchanges(交换机)

  • Exchanges页面,你可以查看所有的交换机。
  • 交换机是RabbitMQ消息路由的重要组成部分,它决定了消息如何被路由到正确的队列。

image-20230909173344966

【5】Queues(队列)

  • Queues页面,你可以查看所有当前的队列。
  • 队列是RabbitMQ的核心,它保存了所有待处理的消息。

image-20230909173414736

【6】Admin

  • RabbitMQ管理页面并没有一个专门的页面来显示所有的生产者,因为生产者在RabbitMQ中是无状态的。

  • 但是,你可以通过查看 “Exchanges” 页面来了解消息被发布的情况。

  • 在 “Admin” 页面,你可以查看所有当前服务的所有操作用户,并提供了添加用户和授予虚拟机的功能等。(右侧还可以切换其他的功能,下面章节用到的时候会说明)

  • 在上面注册用户后在这里就可以看到我们注册的用户

image-20230909174128837

【补充】Windows安装

【1】下载

(1)资源地址

image-20230909154507014

(2)向下拉找到 Download + Installation

image-20230909154524892

(3)选择 Install Windows

image-20230909154627748

(4)下载 Erlang 和 Rabbitmq安装包

image-20230909154824869

(5)下载 opt_win64_25.3.x.exe

  • 这里的 Erlang 版本要和上面的一致
  • 注意自己的操作系统,64为就选 win64 版本

image-20230909155007564

  • 补充:查看 Erlang 和 RabbitMQ 版本兼容版本详细信息

image-20230909155632395

  • 版本兼容详细

image-20230909155751182

(6)补充-下载问题

资源一

image-20230909162532141

  • 下载

image-20230909162612354

资源二

image-20230909220330679

【2】安装

(1)下载文件

image-20230909225055447

(2)先安装 Erlang(otp_win64)

  • 傻瓜式安装一路下一步即可

image-20230909225153601

  • 选择安装位置
    • 有提示弹窗就点允许,没有就不用管

image-20230909225259836

  • 是否创建桌面快捷方式

image-20230909225337816

  • 直接安装即可 Install

image-20230909225721017

  • 配置系统环境变量
    • 将你自己安装的bin路径添加到系统环境变量

image-20230909230002724

(3)安装RabbitMQ

  • 傻瓜式安装一路下一步即可

image-20230909230110189

  • 选择安装位置
    • 有提示弹窗就点允许,没有就不用管

image-20230909230143664

  • 安装 完成

image-20230909230440339

  • 启动服务

image-20230909230454705

  • 添加系统环境变量

    • 位置如上面

    • 将 sbin 路径添加到系统环境变量

【3】启用RabbitMQ插件

  • 在安装的RabbitMQ的 sbin 目录下 回车 cmd进入命令行
    • 输入以下命令
rabbitmq-plugins enable rabbitmq_management

image-20230909231012180

【4】重启服务

  • 打开任务管理器找到 RabbitMQ 服务 右键 选择重启

image-20230909231114502

【5】访问 RabbitMQ 服务

image-20230909231226192

  • 用户名

    • guest
  • 密码

    • guest
  • 登陆成功

image-20230909231316880

【补充】

【补充】Docker Compose部署RabbitMQ

  • 前提:已经有了Erlang依赖

【1】确保已经安装了Docker和Docker Compose

  • 确保已经安装了Docker和Docker Compose。
  • 可以在终端中运行以下命令来验证安装情况:
docker -v
docker-compose -v

【2】创建 docker-compose.yml

  • 创建一个新目录,并在该目录下创建一个名为docker-compose.yml的文件。

  • 可以使用任何文本编辑器来创建文件。

  • docker-compose.yml文件中添加以下代码:

version: '3'
services:
  rabbitmq:
    image: rabbitmq:latest
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - ./data:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=username
      - RABBITMQ_DEFAULT_PASS=password
  • 请注意将usernamepassword替换为希望设置的RabbitMQ用户名和密码。

【3】导航到文件目录下

  • 在终端中导航到存储docker-compose.yml文件的目录
  • 然后运行以下命令启动RabbitMQ容器:
docker-compose up -d
  • 此命令将拉取最新的RabbitMQ镜像,并在后台运行容器。

【4】等待容器启动成功

  • 等待一段时间,直到容器成功启动。
  • 可以通过运行以下命令来检查容器状态:
docker ps
  • 如果一切正常,应该看到名为rabbitmq的容器正在运行。

【5】访问管理后台

  • 现在可以通过访问localhost:15672来访问RabbitMQ的管理界面。
  • 使用在docker-compose.yml文件中设置的用户名和密码进行登录。
posted @ 2023-09-10 19:37  Chimengmeng  阅读(126)  评论(0编辑  收藏  举报