乐趣区

关于arm64:arm架构安装RabbitMQ并升级erlang解决Requires-erlang->-232

arm 架构装置 RabbitMQ


#查看 Linux 内核版本
uname -r 
4.18.0-80.7.2.el7.aarch64
#或者应用 uname -a

#查看 erlang 版本, 输出 erl
erl

#显示如下:Erlang/OTP 24 版本, 我这里是降级后的版本了, 原本版本比拟低
Erlang/OTP 24 [erts-12.0]  [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1]

Eshell V12.0  (abort with ^G)
1> 

#yum 间接装置 RabbitMQ, 如果 erlang 版本比拟低, 装置的 RabbitMQ 的版本也会比拟低
yum install -y rabbitmq-server

#如果装置高版本的 RabbitMQ 报错
Error: Package: rabbitmq-server-3.8.16-1.el7.noarch (rabbitmq_rabbitmq-server)
           Requires: erlang >= 23.2
           Available: erlang-R16B-03.18.el7.aarch64 (epel)
               erlang = R16B-03.18.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

#提醒 erlang 的版本太低, 必须大于 erlang >= 23.2

卸载 erlang 并降级 erlang

Erlang 官网装置地址: https://www.erlang-solutions….

rpm 包装置

#卸载 erlang
yum -y remove erlang-*

#官网下载 rpm 包 
#抉择对应的零碎, 如: Centos
#抉择零碎对应的版本, 如:CentOS7 (arm64 位) 下载: esl-erlang_24.0.1-1_centos_7_arm64.rpm
#Rpm 包装置
sudo rpm -ivh esl-erlang_24.0.1-1_centos_7_arm64.rpm
yum 装置 erlang

#卸载 erlang
yum -y remove erlang-*

#按官网的提醒操作

#应用存储库装置
wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm

#旧的存储库
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

#手动增加存储库条目
rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc

#增加到“/etc/yum.repos.d/”目录文件中
vim erlang_solutions.repo
[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1

#查看 erlang 可装置版本
yum list |grep erlang

yum list erlang --showduplicates | sort -r

#装置 erlang, 也可装置指定版本
yum install -y erlang

#装置 erlang 指定版本
yum install erlang-24.0-1.el7.aarch64

RabbitMQ 官网装置

应用 PackageCloud 装置 RabbitMQ 是最简略的装置形式,依照官网文档来就能够了。
官网地址:
https://www.rabbitmq.com/inst…


#运行 Package Cloud 提供的 RabbitMQ Server 疾速装置脚本
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

#运行 Package Cloud 提供 Erlang 环境疾速装置脚本
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

#应用 yum 装置 Erlang 环境
yum  -y install erlang

#装置 socat, logrotate 依赖
yum install socat logrotate -y

#应用 yum 装置 RabbitMQ Server
yum install -y rabbitmq-server

配置 RabbitMQ 开机自启动服务


# 启动 rabbitmq 服务
sudo systemctl start rabbitmq-server.service 

# 查看 rabbitmq 启动状态
sudo systemctl status rabbitmq-server.service

# 进行 rabbitmq 服务
sudo systemctl stop rabbitmq-server.service 

# 重启 rabbitmq 服务
sudo systemctl restart rabbitmq-server.service 

# 开机自启动服务
sudo systemctl enable rabbitmq-server.service

# 查看 rabbitmq 开机启动状态 enabled: 开启, disabled: 敞开
sudo systemctl is-enabled rabbitmq-server.service

# 禁止开启启动
sudo systemctl disable rabbitmq-server.service

创立用户操作


#查看以后用户命令:rabbitmqctl list_users

#创立用户 admin 明码: abcd_2021
rabbitmqctl add_user admin abcd_2021

#将用户给于管理员权限 
rabbitmqctl set_user_tags admin administrator

#查看用户权限 
rabbitmqctl list_user_permissions admin

#设置用户权限 (承受来自所有 Host 的所有操作) 
rabbitmqctl  set_permissions -p "/" admin '.*' '.*' '.*'

开启 MQTT,web 治理界面等插件


#查看插件 
rabbitmq-plugins list

#启用 WEB 治理界面插件, 治理控制台的默认端口是:15672 
#浏览器拜访:http://127.0.0.1:15672/ 输出用户名和明码
rabbitmq-plugins enable rabbitmq_management

#启用 MQTT 插件, 默认端口 mqtt 是:1883 mqtt://127.0.0.1:1883
#能够应用 EMQ 的 MQTTX 客户端工具连贯, 或者 MQTTLens 工具 
rabbitmq-plugins enable rabbitmq_mqtt

#启用 MQTT 的 websocket 插件, 默认端口 websocket 是:15675 ws://127.0.0.1:15675/ws 
#留神: path 是 /ws
rabbitmq-plugins enable rabbitmq_web_mqtt

#查看启动的端口
netstat -tpnl
  

RabbitMQ 过期策略


#TTL 政策将删除指定的工夫到期后未应用的队列 30 分钟. beam.smp high cpu load
rabbitmqctl set_policy expiry ".*" '{"expires":1800000}' --apply-to queues

#从队列维度设置音讯超时工夫 60 秒:
rabbitmqctl set_policy TTL ".*" '{"message-ttl":60000}' --apply-to queues
退出移动版