RabbitMQ 安装和使用

一、安装依赖环境

  1. http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本

  2. https://github.com/rabbitmq/erlang-rpm/releases 页面找到需要下载的erlang版本,erlang-*.centos.x86_64.rpm 就是centos版本的。

  3. 复制下载地址后,使用wget命令下载
    wget -P /home/download https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.3/erlang-23.3.3-1.el7.x86_64.rpm

  4. 安装 Erlang
    sudo rpm -Uvh /home/download/erlang-23.3.3-1.el7.x86_64.rpm

  5. 安装 socat
    sudo yum install -y socat

二、安装RabbitMQ

  1. 在官方下载页面找到CentOS7版本的下载链接,下载rpm安装包
    wget -P /home/download https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.15/rabbitmq-server-3.8.15-1.el7.noarch.rpm

提示:可以在 https://github.com/rabbitmq/rabbitmq-server/tags 下载历史版本

  1. 安装RabbitMQ

sudo rpm -Uvh /home/download/rabbitmq-server-3.8.15-1.el7.noarch.rpm

三、启动和关闭

  • 启动服务
    sudo systemctl start rabbitmq-server

  • 查看状态
    sudo systemctl status rabbitmq-server

  • 停止服务
    sudo systemctl stop rabbitmq-server

  • 设置开机启动
    sudo systemctl enable rabbitmq-server

四、开启Web管理插件

  1. 开启插件
    rabbitmq-plugins enable rabbitmq_management
    说明:rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够远程访问的用户。

  2. 添加用户
    rabbitmqctl add_user admin admin

  3. 为用户分配操作权限
    rabbitmqctl set_user_tags admin administrator

  4. 为用户分配资源权限
    rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

五、防火墙添加端口

  • RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加都防火墙
  1. 添加端口
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent 
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
  1. 重启防火墙
    sudo firewall-cmd --reload

RabbitMQ基本配置

RabbitMQ 有一套默认的配置,能够满足日常开发需求,如果需要修改,需要自己创建一个配置文件
touch /etc/rabbitmq/rabbitmq.conf

配置文件示例:
https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq.conf.example

配置项说明:
https://www.rabbitmq.com/configure.html#config-items

RabbitMQ 会绑定一些端口,安装完后,需要将这些端口添加至防火墙。

  • 4369:是Erlang的端口/结点名称映射程序,用来跟踪节点名称监听地址,在集群中起到一个类似DNS的作用。

  • 5672, 5671:AMQP 0-9-1 和 1.0 客户端端口,没有使用SSL和使用SSL的端口。

  • 25672:用于RabbitMQ节点间和CLI工具通信,配合4369使用。

  • 15672:HTTP_API端口,管理员用户才能访问,用于管理RbbitMQ,需要启用management插件。

  • 61613,61614:当STOMP插件启用的时候打开,作为STOMP客户端端口(根据是否使用TLS选择)。

  • 1883, 8883:当MQTT插件启用的时候打开,作为MQTT客户端端口(根据是否使用TLS选择)。

  • 15674:基于WebSocket的STOMP客户端端口(当插件Web STOMP启用的时候打开)

  • 15675:基于WebSocket的MQTT客户端端口(当插件Web MQTT启用的时候打开)

RabbitMQ 角色分类

RabbitMQ 的用户角色分类:none、management、policymaker、monitoring、administrator

  • none:不能访问 management plugin

  • management:用户可以通过AMQP做的任何事外加:

    • 列出自己可以通过AMQP登入的virtual hosts

    • 查看自己的virtual hosts中的queues, exchanges 和 bindings

    • 查看和关闭自己的channels 和 connections

    • 查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

  • policymaker:management可以做的任何事外加:

    • 查看、创建和删除自己的virtual hosts所属的policies和parameters
  • monitoring:management可以做的任何事外加:

    • 列出所有virtual hosts,包括他们不能登录的virtual hosts

    • 查看其他用户的connections和channels

    • 查看节点级别的数据如clustering和memory使用情况

    • 查看真正的关于所有virtual hosts的全局的统计信息

  • administrator:policymaker和monitoring可以做的任何事外加:

    • 创建和删除virtual hosts

    • 查看、创建和删除users

    • 查看创建和删除permissions

    • 关闭其他用户的connections

posted @ 2022-07-03 11:26  snail灬  阅读(407)  评论(0编辑  收藏  举报