Linux通过二进制文件安装RabbitMQ

Linux通过二进制文件安装RabbitMQ

介绍

RabbitMQ版本包括适用于Linux,MacOS和* BSD系统的二进制软件包。它是极简主义的,对于如何安装,配置和管理它没有意见。在无法使用更多自觉的安装选项(DebianRPM软件包Homebrew,BSD端口)的环境中,建议使用此软件包。这也是在开发环境中在同一台计算机上运行多个版本的最方便的选择,例如预览发布测试。Windows有一个单独的二进制包

此案例版本对照表

RabbitMQErLangSystemVersion
3.7.1523.0CentOS 7 x86_64

mq依赖环境:erlang,确保已安装Erlang / OTP
otp网盘下载链接:https://pan.baidu.com/s/1bPpsO3Vd0u8bQbm1UtZedw .
提取码:4pay

RabbitMQ、erlang版本矩阵

RabbitMQ versionMinimum required Erlang/OTPMaximum supported Erlang/OTPNotes
3.8.1623.224.xErlang/OTP 24 support announcementErlang 24 was released on May 12, 2021Some community plugins and tools may be incompatible with Erlang 24
3.8.153.8.143.8.133.8.123.8.113.8.103.8.922.323.xErlang/OTP 23 compatibility notesErlang 23.x is recommendedErlang 22.x dropped support for HiPE
3.8.83.8.73.8.63.8.53.8.421.323.xErlang/OTP 23 compatibility notesErlang 22.x or 23.x is recommendedErlang 22.x dropped support for HiPE
3.8.33.8.23.8.13.8.021.322.xErlang 22.x is recommended.Erlang 22.x dropped support for HiPE
3.7.273.7.263.7.253.7.243.7.233.7.223.7.213.7.203.7.1921.322.xErlang/OTP 20.x support is discontinuedErlang 22.x dropped support for HiPE
3.7.183.7.173.7.163.7.1520.322.xErlang/OTP 22.0 compatibility notesTLSv1.0 and TLSv1.1 support is disabled by default on Erlang 22.x
3.7.143.7.133.7.123.7.1120.321.xErlang/OTP 19.x support is discontinuedFor the best TLS support, the latest version of Erlang/OTP 21.x is recommended
3.7.103.7.93.7.83.7.719.321.xErlang/OTP 21.0 compatibility notes
3.7.63.7.53.7.43.7.33.7.23.7.13.7.019.320.xFor the best TLS support, the latest version of Erlang/OTP 20.x is recommendedErlang versions prior to 19.3.6.4 have known bugs (e.g. ERL-430, ERL-448) that can prevent RabbitMQ nodes from accepting connections (including from CLI tools) and stoppingVersions prior to 19.3.6.4 are vulnerable to the ROBOT attack (CVE-2017-1000385)On Windows, Erlang/OTP 20.2 changed default cookie file location

安装erlang

下载erlang安装包后,上传到服务器进行解压

mkdir /root/erlang
tar -zxvf otp_src_23.0.tar.gz -C /root/erlang

安装依赖类库以及软件包

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

依赖安装完成后,进入erlang目录

cd /root/erlang
./configure --prefix=/opt/erlang --编译
--编译完成后,确保无错误信息,执行一下操作
make install --此过程执行时间较长

make install完成后打印如下代表安装完成:


配置erlang环境变量

echo 'export PATH=$PATH:/opt/erlang/bin' >> ~/.bashrc
source ~/.bashrc

出现一下报错可忽略

安装RabbitMQ

注意:rabbitmq启动时需要使用rabbitmq用户,所以需要我们创建用户、用户组rabbitmq

上传安装包到服务器后,进行解压

groupadd rabbitmq --添加用户组
useradd rabbitmq -g rabbitmq --添加用户并将用户加入用户组
su - rabbitmq -- 切换到rabbitmq用户
-- 上传rabbitmq安装包到/home/rabbitmq目录并进行赋权
tar -xvf rabbitmq-server-generic-unix-3.7.15.tar.xz
mv rabbitmq-server-3.7.15 rabbitmq
echo 'export RABBITMQ_HOME=/home/rabbitmq/rabbitmq' >> ~/.bashrc
echo 'export PATH=$PATH:$RABBITMQ_HOME/sbin' >> ~/.bashrc
echo 'export PATH=$PATH:/opt/erlang/bin' >> ~/.bashrc
source ~/.bashrc
--启动rabbitmq
rabbitmq-server start 
ps -ef | grep rabbitmq --查看rabbitmq进程是否存在
rabbitmqctl start_app --启动RabbitMQ的应用
--默认情况下,rabbitmq没有安装web端的客户端软件,需要安装才可以生效
rabbitmq-plugins enable rabbitmq_management --打开RabbitMQWeb管理界面插件

rabbitmq默认端口为15672,通过web界面访问rabbitmq


使用rabbitmq默认的用户名密码为guest登录,出现以下报错

表示只能通过本机登录,解决方案如下:

--进入rabbitmq安装目录下
cd $RABBITMQ_HOME/ebin
vim rabbit.app
-- 将下图中红框选项中的guest删除


更改后:
重启rabbitmq

rabbitmqctl stop
rabbitmq-server -detached
--重启刷新web界面使用guest登录即可


rabbitmq默认的用户名密码为guest,为访客权限,且只能通过本机localhost访问,远程访问用户需要我们手动添加

rabbitmqctl add_user rbmq 123 -- rabbitmqctl add_user 用户名 密码
rabbitmqctl set_user_tags rbmq administrator --设置用户角色  rabbitmqctl set_user_tags 用户名 角色
rabbitmqctl set_permissions -p / rbmq ".*" ".*" ".*" --添加主机

rabbitmq角色说明:

  • administrator:超级管理员,可以登录控制台、查看所有信息、并对rabbitmq进行管理
  • monToring:监控者;登录控制台,查看所有信息
  • policymaker:策略制定者;登录控制台指定策略
  • managment:普通管理员;登录控制

rabbitmqctl set_permissions说明:


通过自定义用户俸禄rabbitmq web界面

TODO : Python创建生产者,消费者验证Rabbitmq(待完善)

sendMQ.py

import pika
import sys
import time
from datetime import datetime
import random

# rabbitmq信息
username = "rbmq"
password = "123"
ip_addr = "xxx.xxx.xxx.xxx"
alphabet = 'abcdefghijklmnopqrstuvwxyz!@#$%^&*()'
port_num = "5672"
# 创建证数
credentials = pika.PlainCredentials(username, password)
# 创建连接
connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials))
# 连接管道
channel = connection.channel()
# 申明queue,如果在rabbitmq上已经添加了queue,则无需执行此步
# channel.queue_declare(queue="balance",durable=True)


# 向rabbitmq的queue中发送消息
i = 0
while(i < sys.maxsize):
    channel.basic_publish(
        exchange='',
        routing_key='s_network_q',
        body="["
             + str(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
             + "] _" + str(random.sample(alphabet, 10))
             + "_",
        properties=pika.BasicProperties(delivery_mode=2,)
    )
    i += 1
    print("[%s] Sent 'Hello world !'\t" % i)
    time.sleep(3)
# 断开连接
connection.close()

revMQ.py

import pika
import time

username = "rbmq"
password = "123"
ip_addr = "xxx.xxx.xxx.xxx"
port_num = "5672"

credentials = pika.PlainCredentials(username, password)
connection = pika.BlockingConnection(pika.ConnectionParameters(ip_addr, port_num, '/', credentials))
channel = connection.channel()

def callback(ch, method, properties, body):
    print(" [%s] Received %r" % (time.time(), body))
channel.basic_consume(queue='s_network_q',on_message_callback=callback,auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

TODO : Docker环境下部署RabbitMQ

参考文档

https://blog.csdn.net/qq_36244204/article/details/89493693

https://www.rabbitmq.com/which-erlang.html

https://www.rabbitmq.com/install-generic-unix.html

https://github.com/rabbitmq/rabbitmq-server/releases?after=v3.7.17-rc.2

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值