Linux搭建RabbitMQ集群环境

简介: Linux搭建RabbitMQ集群环境

环境说明

  • 操作系统:CentOS7
  • Erlang版本:21.3
  • RabbitMQ版本:3.8.0

Erlang安装

下载安装包

参考链接:https://packagecloud.io/rabbitmq/erlang。精简的包,只提供运行RabbitMQ所需的组件。

  1. 选择对应版本进入下载页面
    在这里插入图片描述
  2. 复制下图中的wget地址
    在这里插入图片描述
  3. 执行下载命令
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.14-1.el7.x86_64.rpm/download.rpm?distro_version_id=140

在这里插入图片描述

安装

执行安装命令

rpm -ivh erlang-21.3.8.14-1.el7.x86_64.rpm

在这里插入图片描述

验证

执行命令验证安装版本

yum info erlang

在这里插入图片描述

RabbitMQ安装

参考链接:https://www.rabbitmq.com/install-rpm.html

下载安装包

  1. 执行下载命令,如果下载超时,点击进行下载RabbitMQ安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm

在这里插入图片描述

  1. 下载完成后导入key
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

安装

rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm

在这里插入图片描述
上图提示缺少logrotate和socat,yum安装即可。

yum install logrotate
yum install socat

在这里插入图片描述
在这里插入图片描述
再次执行rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm即可
在这里插入图片描述

启动RabbitMQ

# 启动rabbitmq
systemctl start rabbitmq-server
# 查看rabbitmq状态
systemctl status rabbitmq-server

在这里插入图片描述

设置开机自动启动

systemctl enable rabbitmq-server

在这里插入图片描述

安装管理界面

rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述
guest帐号只能在RabbitMQ安装服务器上登录,如下图提示信息
在这里插入图片描述

创建用户

#创建一个用户admin,密码位123456
rabbitmqctl add_user admin 123456
#设置用户标签为administrator
rabbitmqctl set_user_tags admin administrator
#授予admin用户可访问虚拟主机 / 以及各种权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

登录管理界面

使用创建的用户登录管理界面
在这里插入图片描述

集群配置

前提条件

  • 2台服务器节点rabbit均已安装。
  • rabbitmq依赖于erlang集群工作,需要保证各节点中cookie文件的一致性,否则节点之间无法通信。

    构建erlang集群

  1. 拷贝一台rabbitmq的erlang.cookie到另外一台,被拷贝的视为master
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.0.238:/var/lib/rabbitmq

在这里插入图片描述

  1. 重启2个节点
    systemctl restart rabbitmq-server
    
  2. 操作node2服务
    #停止服务
    rabbitmqctl stop_app
    #重置服务
    rabbitmqctl reset
    #加入集群,$hostname为node1的hostname
    rabbitmqctl join_cluster rabbit@$hostname
    

    高可用镜像集群配置

    2台服务器分别执行以下命令设置策略
    rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
5天前
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
|
3天前
|
架构师 Linux Shell
Linux环境下要想事半功倍,少不了这4个技巧!
Linux环境下要想事半功倍,少不了这4个技巧!
|
5天前
|
Linux C语言 Windows
Linux环境下运行介绍
1. 文件编程函数介绍 如果在Linux系统下学习C语言,就会了解到两套文件编程接口函数: C语言标准的文件编程函数: fopen、fread、fwrite、fclose Linux下提供的文件编程函数: open、read、write、close 传参的区别: 基于文件指针: fopen fclose fread fwrite 比较适合操作普通文件。 基于文件描述符: open close read write 比较适合操作设备文件。 2. C语言标准库提供的文件编程函数 下面介绍C语言标准库提供的文件编程函数,一般对文件常用的操作就是:创建(打开)、读、写、关闭。 其他的
19 1
|
7天前
|
关系型数据库 数据库 PostgreSQL
Linux 环境手动备份postgresql数据库
【8月更文挑战第12天】在Docker环境中使用命令行工具对PostgreSQL数据库进行备份和恢复。首先,通过dockerexec进入容器,使用pg_dump进行数据库模式的备份,然后使用dockercp将备份文件导出。接着,若需导入数据到另一数据库,先将备份文件复制到目标容器,再利用psql命令进行数据恢复。整个过程需确保目标数据库无同名模式,以防止导入失败
15 3
|
10天前
|
存储 关系型数据库 MySQL
"Linux环境下MySQL数据库名及表名大小写敏感性设置详解:从配置到影响,确保数据库操作的准确与高效"
【8月更文挑战第9天】在Linux环境中,MySQL数据库名及表名的大小写敏感性是一项重要配置。默认情况下,MySQL在Linux上区分大小写,但这可通过配置文件 `/etc/my.cnf` 中的 `lower_case_table_names` 参数调整。该参数设为0时,名称存储时保持原样,查询时不区分大小写;设为1则全部转换为小写。通过编辑配置文件并重启MySQL服务,可根据需求灵活控制名称的大小写敏感性,确保数据一致性和应用兼容性。
28 3
|
17天前
|
Linux 开发工具 Python
【Deepin 20系统】Linux系统从零打造完美VScode for Python环境
如何在Deepin 20系统中从零开始配置一个完美的VScode for Python开发环境,包括安装Anaconda、VScode、必要的插件、汉化、主题和字体设置,以及如何运行和调试Python程序。
29 5
|
14天前
|
Linux C语言 Windows
Linux环境下运行
1. 文件编程函数介绍 如果在Linux系统下学习C语言,就会了解到两套文件编程接口函数: C语言标准的文件编程函数: fopen、fread、fwrite、fclose Linux下提供的文件编程函数: open、read、write、close 传参的区别: 基于文件指针: fopen fclose fread fwrite 比较适合操作普通文件。 基于文件描述符: open close read write 比较适合操作设备文件。 2. C语言标准库提供的文件编程函数 下面介绍C语言标准库提供的文件编程函数,一般对文件常用的操作就是:创建(打开)、读、写、关闭。 其他的
32 1
|
22天前
|
消息中间件 Prometheus 监控
消息队列 MQ使用问题之如何将旧集群的store目录迁移到新集群
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
3天前
|
机器学习/深度学习 Linux Shell
超详细的Linux-Conda环境安装教程
超详细的Linux-Conda环境安装教程
|
5天前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
17 0

热门文章

最新文章