赞
踩
RabbitMQ是一个开源的遵循AMQP协议实现的基于Erlang语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩性,易用性等特征。
好处:
RabbitMQ中的两个最基本的特性:实现语言(Erlang)和所基于的模型(高级消息队列模型)
参考:https://www.rabbitmq.com/install-debian.html
RabbitMQ需要Erlang/OTP才能运行。标准Debian和Ubuntu存储库中的Erlang/OTP包可能过时,并且不受现代RabbitMQ版本的支持。
最新的Erlang/OTP版本系列可以从许多替代的apt存储库中获得。此处使用的是cloudsmith中的rabbitmq apt库
vim install_cloudsmith.sh #!/bin/sh # 安装基本依赖项 # apt-transport-https:启用apt HTTPS传输 # 为了让apt能够从Cloudsmith下载RabbitMQ和Erlang包, apt-transport-https包必须安装: sudo apt-get install curl gnupg apt-transport-https -y # 添加key ## Team RabbitMQ's main signing key curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null ## Community mirror of Cloudsmith: modern Erlang repository curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null ## Community mirror of Cloudsmith: RabbitMQ repository curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null # 配置RabbitMQ源 # 此处需要注意:jammy对应的是ubuntu22.04,不同系统的版本号不同,根据自己系统进行配置:具体对应关系在方图中 ## Add apt repositories maintained by Team RabbitMQ sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF ## Provides modern Erlang/OTP releases ## deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main # another mirror for redundancy deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main ## Provides RabbitMQ ## deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main # another mirror for redundancy deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.novemberain.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main EOF # 更新源 ## Update package indices sudo apt-get update -y # 安装Erlang包 # RabbitMQ是采用 Erlang语言开发的,所以系统环境必须提供 Erlang环境,需要是安装 Erlang ## Install Erlang packages sudo apt-get install -y erlang-base \ erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \ erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \ erlang-runtime-tools erlang-snmp erlang-ssl \ erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl # 安装rabbitmq ## Install rabbitmq-server and its dependencies sudo apt-get install rabbitmq-server -y --fix-missing
不同系统的版本号不同,根据需要进行配置:

# 可以查看Erlang版本
erl -v
######输出#####
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]
Eshell V12.2.1 (abort with ^G)
1>
#
systemctl status rabbitmq-server.service

默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效
# 打开RabbitMQWeb管理界面插件 rabbitmq-plugins enable rabbitmq_management # 管理界面的默认端口是:15672 # 启动之后直接访问:ip:port ######## 以下是输出内容 Enabling plugins on node rabbit@con02: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch Applying plugin configuration to rabbit@con02... The following plugins have been enabled: rabbitmq_management rabbitmq_management_agent rabbitmq_web_dispatch
rabbitmqrabbitmq有一个默认的账号密码guest,但该情况仅限于本机localhost进行访问,所以需要添加一个远程登录的用户

# 添加用户 # rabbitmqctl add_user 用户名 密码 rabbitmqctl add_user admin 12345 # 设置用户角色,分配操作权限 # rabbitmqctl set_user_tags 用户名 角色 rabbitmqctl set_user_tags admin administrator # 为用户添加资源权限(授予访问虚拟机根节点的所有权限) # rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*" rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" #角色有四种: # administrator # monToring # policymaker # managment
此处创建一个admin用户,角色为 administrator,拥有所有权限

创建完成之后即可用该用户进行前台登录

# 添加用户 rabbitmqctl add_user 用户名 密码 # 设置用户角色,分配操作权限 rabbitmqctl set_user_tags 用户名 角色 # 为用户添加资源权限(授予访问虚拟机根节点的所有权限) rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*" # 修改密码 rabbitmqctl change_ password 用户名 新密码 # 删除用户 rabbitmqctl delete_user 用户名 # 查看用户清单 rabbitmqctl list_users # 查看帮助 rabbitmqctl help set_permissions
# 更新 sudo apt update # 安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库: sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release # 运行下列命令添加 Docker 的官方 GPG 密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 添加 Docker 官方库: echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 更新 Ubuntu 源列表: sudo apt update # 安装指定版本的docker # 检查可以安装的docker版本库 apt-cache madison docker-ce # 挑选上面列表中的任何版本进行安装 sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io -yq # 查看docker是否运行 systemctl status docker # 查看版本 docker version # 添加镜像加速 cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"] } EOF systemctl restart docker systemctl status docker
# latest RabbitMQ 3.12
docker run -itd --rm --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=12345 -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management
# -e RABBITMQ_DEFAULT_USER:设置环境变量,用户名
# -e RABBITMQ_DEFAULT_PASS:设置环境变量,密码
# -p hostPort:containerdPort:主机端口:容器端口
登录前台页面:ip:15672,用户名/密码:admin/12345

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。