iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >CentOS7安装rabbitmq集群(二进制)
  • 348
分享到

CentOS7安装rabbitmq集群(二进制)

集群rabbitmq 2023-01-31 08:01:02 348人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡。RabbiMQ模式RabbitMQ模式大概分为以下三种:(1)单一模式。(2)普通模式(默认的集群模式)。(3) 镜像模式(

RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡

RabbiMQ模式

RabbitMQ模式大概分为以下三种:
(1)单一模式。
(2)普通模式(默认的集群模式)。
(3) 镜像模式(把需要的队列做成镜像队列,存在于多个节点,属于RabbiMQ的HA方案,在对业务可靠性要求较高的场合中比较适用)。
要实现镜像模式,需要先搭建一个普通集群模式,在这个模式的基础上再配置镜像模式以实现高可用

RabbiMQ特点

RabbitMQ的集群节点包括内存节点、磁盘节点。RabbitMQ支持消息的持久化
也就是数据写在磁盘上,最合适的方案就是既有内存节点,又有磁盘节点。

环境

使用3台服务器进行搭建,采用rabbitmq镜像模式

操作系统主机名ip地址用途
Centos7.4centos7_01192.168.31.149rabbitmq001(磁盘节点)
centos7.4centos7_02192.168.31.186rabbitmq002(内存节点)
centos7.4centos7_02192.168.31.238rabbitmq003(内存节点)

 

 

 

 

 


注意,这里三台服务器都连接上互联网,另外RabbitMQ集群节点必须在同一网段里,如果是跨广域网,效果会变差。

整体架构

1.png

 

修改主机名

如果主机名正确,请忽略此步骤

hostnamectl set-hostname centos7_01
hostnamectl set-hostname centos7_02
hostnamectl set-hostname centos7_03

 

 添加hosts

vi /etc/hosts

内容如下:

192.168.31.149 centos7_01
192.168.31.186 centos7_02
192.168.31.238 centos7_03

 

mkdir -p /data/software
yum install -y wget epel-release
cd /data/software
wget Http://download.51yuki.cn/esl-erlang_21.3.6-1_centos_7_amd64.rpm
yum -y install esl-erlang_21.3.6-1_centos_7_amd64.rpm
yum clean all

 

erlang检查

#  erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.3.4

 

cd /data/software
wget http://download.51yuki.cn/rabbitmq-server-generic-unix-3.7.15.tar.xz
tar xvf rabbitmq-server-generic-unix-3.7.15.tar.xz -C /data/
mv /data/rabbitmq_server-3.7.15 /data/rabbitmq
echo 'export PATH=/data/rabbitmq/sbin:$PATH'>> /etc/profile
source /etc/profile
which rabbitmqctl

 

 修改配置文件

vi /data/rabbitmq/etc/rabbitmq/rabbitmq-env.conf

 

 内容如下:

RABBITMQ_nodeNAME=rabbitmq001@centos7_01
RABBITMQ_NODE_IP_ADDRESS=192.168.31.149
RABBITMQ_NODE_PORT=5672
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs

说明:

 

属性描述默认值
RABBITMQ_NODENAMErabbitmq节点名称,集群中要注意节点名称唯一linux 默认节点名为 rabbit@$hostname
RABBITMQ_NODE_IP_ADDRESS绑定的网络接口默认为空字符串表示绑定本机所有的网络接口
RABBITMQ_NODE_PORT端口默认为5672
RABBITMQ_MNESIA_BASEmnesia所在路径$RABBITMQ_HOME/var/lib/rabbitmq/mnesia
RABBITMQ_LOG_BASE日志所在路径$RABBITMQ_HOME/var/log/rabbitmq

 

 

 

 

 

更多属性,请参考官网链接:
http://www.rabbitmq.com/man/rabbitmq-env.conf.5.html

 

编辑配置文件

mkdir -p /data/rabbitmq/data
mkdir -p /data/rabbitmq/logs
vi /data/rabbitmq/etc/rabbitmq/rabbitmq.config
内容如下:
[
 {rabbit,
   [
     {tcp_listeners, [5672]},
     {dump_log_write_threshold, [1000]},
     {vm_memory_high_watermark, 0.5},
     {disk_free_limit, "200MB"},
     {hipe_compile,true}
   ]
  }
].

注意:[]. 后面有一个点

 

说明:

KeyDocumentation
tcp_listeners用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即”监听所有接口”)或者元组如 {“127.0.0.1”, 5672} 用于监听一个或多个接口.Default: [5672]
dump_log_write_threshold更改mnesia的转储日志写入阈值 Default: [100]
vm_memory_high_watermark流程控制触发的内存阀值.相看memory-based flow control 文档.Default: 0.4
disk_free_limitRabbitMQ存储数据分区的可用磁盘空间限制.当可用空间值低于阀值时,流程控制将被触发.此值可根据RAM的总大小来相对设置 (如.{mem_relative, 1.0}).此值也可以设为整数(单位为bytes)或者使用数字单位(如.”50MB”).默认情况下,可用磁盘空间必须超过50MB.参考 Disk Alarms 文档.Default: 50000000
hipe_compile将此选项设置为true,将会使用HiPE预编译部分RabbitMQ,Erlang的即时编译器.这可以增加服务器吞吐量,但会增加服务器的启动时间.

 

 

更多参考,请参考链接:
https://blog.csdn.net/Super_RD/article/details/70327712

 

修改权限

useradd -u 1020 -s /sbin/nologin rabbitmq
chown -R rabbitmq:rabbitmq -R /data/rabbitmq

另外2台服务器,按以上方式安装rabbitmq和erlang

 

登录到第一台主机,启动rabbitmq服务
注意:必须要切换到普通用户

su -s /bin/bash - rabbitmq
nohup /data/rabbitmq/sbin/rabbitmq-server start &

 

查看输出信息

tail -f nohup.out

 

输出如下:

复制代码

HiPE compiling:  |---------------------------------------------------------|
                 |#########################################################|
Compiled 57 modules in 302s
  ##  ##
  ##  ##      RabbitMQ 3.7.15. Copyright (C) 2007-2019 Pivotal Software, Inc.
  ##########  Licensed under the MPL.  See https://www.rabbitmq.com/  ######  ##
  ##########  Logs: /data/rabbitmq/logs/centos7_01.log                    /data/rabbitmq/logs/centos7_01_upgrade.log
              Starting broker...
 completed with 0 plugins.

复制代码

 注意:出现completed with,表示启动成功

 

查看cookie文件是否存在

注意:此文件必须存在

ls .erlang.cookie

 

 查看端口,是否存在

ss -tuNLP|grep 5672

 

拷贝cookie

拷贝第一台服务器rabbitmq的家目录下.erlang.cookie文件到另外2台服务器rabbitmq的家目录下

scp -P 22 /home/rabbitmq/.erlang.cookie root@192.168.31.186:/home/rabbitmq/
scp -P 22 /home/rabbitmq/.erlang.cookie root@192.168.31.238:/home/rabbitmq/

 

登录另外2台服务器,修改属主和属组

chown -R rabbitmq.rabbitmq /home/rabbitmq/.erlang.cookie
chmod 600 /home/rabbitmq/.erlang.cookie

 

 启动另外2台rabbitmq服务器

su -s /bin/bash - rabbitmq
nohup /data/rabbitmq/sbin/rabbitmq-server start &

 

等待几分钟,查看nohup.out输出,确保正常启动了。

查看端口

# ss -tunlp|grep 5672
tcp    LISTEN     0      128       *:25672                 *:*                   users:(("beam.smp",pid=11461,fd=66))

 

安装插件

3台都安装一下

rabbitmq-plugins enable rabbitmq_management

 

创建用户及授权

登录第一台服务器执行

rabbitmqctl add_user mqadmin "Nwvh3#vu@kqLP&FdHt"
rabbitmqctl set_permissions -p / mqadmin . . .
rabbitmqctl set_user_tags mqadmin administrator

 

加入集群

登录第一台服务器,查看集群状态

复制代码

# rabbitmqctl cluster_status
Cluster status of node centos7_01@centos7_01 ...
[{nodes,[{disc,[centos7_01@centos7_01]}]},
 {running_nodes,[centos7_01@centos7_01]},
 {cluster_name,<<"centos7_01@centos7_01">>},
 {partitions,[]},
 {alarms,[{centos7_01@centos7_01,[]}]}]

复制代码

 

登录rabbitmq002rabbitmq003,加入集群
必须先关闭app

rabbitmqctl stop_app

 

再加入

rabbitmqctl join_cluster --ram rabbitmq001@centos7_01

 

最后启动app

rabbitmqctl start_app

 

查看集群状态
登录到任意节点查询

rabbitmqctl cluster_status

 

输出如下:

复制代码

Cluster status of node rabbitmq001@centos7_01 ...
[{nodes,[{disc,[rabbitmq001@centos7_01]},
         {ram,[rabbitmq003@centos7_03,rabbitmq002@centos7_02]}]},
 {running_nodes,[rabbitmq002@centos7_02,rabbitmq003@centos7_03,
                 rabbitmq001@centos7_01]},
 {cluster_name,<<"rabbitmq001@centos7_01">>},
 {partitions,[]},
 {alarms,[{rabbitmq002@centos7_02,[]},
          {rabbitmq003@centos7_03,[]},
          {rabbitmq001@centos7_01,[]}]}]

复制代码

注意:确保nodes,running_nodes,alarms有3台节点信息

 

yum install -y Nginx
vi /etc/nginx/nginx.conf

 

增加一行

include /etc/nginx/conf.d/vhosts/*.conf;

 

创建目录

mkdir /etc/nginx/conf.d/vhosts/
mkdir -p /data/log/nginx/

 

编辑配置文件

vi /etc/nginx/conf.d/vhosts/rabbitmq.xx.com.conf

 

内容如下:

upstream rabbitmq {
    server 192.168.31.149:15672  max_fails=2 fail_timeout=1;
    server 192.168.31.186:15672  max_fails=2 fail_timeout=1;
    server 192.168.31.238:15672  max_fails=2 fail_timeout=1;
}
server {
 listen 80;
 server_name rabbitmq.xx.com;
 charset utf-8;
 access_log /data/log/nginx/rabbitmq.xx.com.access.log main;
 error_log /data/log/nginx/rabbitmq.xx.com.error.log;
   location / {
   root html;
   index index.html index.htm;
   proxy_pass http://rabbitmq;
        proxy_set_header           Host $host;
        proxy_set_header           X-Real-IP $remote_addr;
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
    error_page 404 /404.html;
        location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
}

 

启动nginx

nginx -t
nginx

 

测试访问

http://rabbitmq.xx.com
用户名:mqadmin
密码:Nwvh3#vu@kqLP&FdHt

 

1.png

效果如下:

1.png

 

本文参考链接:
https://www.cnblogs.com/shihaiming/p/11014257.html


--结束END--

本文标题: CentOS7安装rabbitmq集群(二进制)

本文链接: https://www.lsjlt.com/news/193606.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CentOS7安装rabbitmq集群(二进制)
    RabbiMQ是用Erang开发的,集群非常方便,因为Erlang天生就是一门分布式语言,但其本身并不支持负载均衡。RabbiMQ模式RabbitMQ模式大概分为以下三种:(1)单一模式。(2)普通模式(默认的集群模式)。(3) 镜像模式(...
    99+
    2023-01-31
    集群 rabbitmq
  • centos7+mysql5.7二进制安装
    一、优化部分1、操作系统参数调优2、数据库参数调优3、防火墙设置等二、安装部分1、创建用户和组# groupadd mysql # useradd -g m...
    99+
    2022-10-18
  • CentOS7安装Prometheus(二进制)
    Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 环境说明操作系统:centos 7.6ip地址...
    99+
    2023-01-31
    Prometheus
  • CentOS7安装Node_exporter(二进制)
    Node_exporter是可以在* Nix和Linux系统上运行的计算机度量标准的导出器。Node_exporter 主要用于暴露 metrics 给 Prometheus,其中 metrics 包括:cpu 的负载,内存的使用情况,网络...
    99+
    2023-01-31
    Node_exporter
  • CentOS7下二进制安装mysql 5.7.23
    网上这方面的安装资料参差不齐,到处是坑,废了我好大的劲才装好,然后把自己整理一下,把安装过程记录了下来,同时也分享给有需要的朋友,话不多说,直接上菜 1、首先去Mysql官网下载Mysql5.7.23 下载...
    99+
    2022-10-18
  • Linux Centos7安装MySQL5.5(二进制方式安装)
    Linux Centos7安装MySQL5.5(二进制方式安装) 一、在/app目录下下载mysql-5.5.54-linux2.6-x86_64.tar.gz` [root@test /]# cd /ap...
    99+
    2022-10-18
  • centos7二进制安装mysql5.7.25的过程
    这篇文章主要介绍“centos7二进制安装mysql5.7.25的过程”,在日常操作中,相信很多人在centos7二进制安装mysql5.7.25的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2022-10-18
  • CentOS7中怎么安装 Kubernetes集群
    CentOS7中怎么安装 Kubernetes集群,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CentOS7(mini) 安装 Kubernetes 集群(kubeadm...
    99+
    2023-06-19
  • centos7环境下二进制安装包怎么安装mysql5.6
    这篇文章主要介绍centos7环境下二进制安装包怎么安装mysql5.6,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例讲述了centos7环境下二进制安装包安装 mysql5...
    99+
    2022-10-18
  • CentOS7安装GlusterFS集群的全过程
    目录环境说明:服务器:client:安装:配置 GlusterFS 集群:查看集群状态:创建数据存储目录:查看volume 状态:创建GlusterFS磁盘:GlusterFS 几种volume 模式说明:再查看 vol...
    99+
    2022-06-05
    Centos7安装gluster glusterfs部署 centos7安装glusterfs
  • CentOS7安装通用二进制格式MariaDB 10.2.8
    什么是MariaDBMariaDB 是MySql的一个分支。 了解一下数据库的发展历史,我们知道,MySql数据库不但二次易主,而且还被打入了冷宫(先被sun收购,然后sun被Oracle收购)。因为Ora...
    99+
    2022-10-18
  • centos7系统二进制安装mysql的方法
    下文主要给大家带来centos7系统二进制安装mysql的方法,希望这些内容能够带给大家实际用处,这也是我编辑centos7系统二进制安装mysql的方法这篇文章的主要目的。好了,废话不多说,大家直接看下文...
    99+
    2022-10-18
  • centos7下安装MySQL 5.7.26 二进制版本(免安装绿色版)
    MySQL 5.7.26 二进制版本安装(免安装绿色版) 下载地址   https://downloads.mysql.com/archives/community/   https://cdn.mysql.com/archive...
    99+
    2014-07-08
    centos7下安装MySQL 5.7.26 二进制版本(免安装绿色版)
  • Centos7安装mariadb galera cluster数据库集群 & 详解
    #Galera集群特点集群之间无延时,同步复制。而master-slave主从异步复制,存在延迟。active-active多主,集群内部服务器都是同时写,必须等所有集群内所有数据库都完成数据写入,才会反馈...
    99+
    2022-10-18
  • Centos7安装部署Kubernetes(k8s)集群实现过程
    目录一.系统环境二.前言三.Kubernetes3.1 概述3.2 Kubernetes 组件3.2.1 控制平面组件3.2.2 Node组件四.安装部署Kubernetes集群4....
    99+
    2022-11-13
    Centos7安装部署Kubernetes Centos Kubernetes
  • mysql8.0 二进制安装
    博客只为记录学习过程。不喜勿喷mysql社区版:开源 免费,不提供技术支持,需要配合开源工具来使用。mysql企业版:和社区版本代码一样,通过插件提供额外功能特性,比社区版本增加线程插件,审计插件。等额外的...
    99+
    2022-10-18
  • mysql5.6.20二进制安装
    1把105的/usr/local/mysql拷过去2. 把105的/etc/my.cnf拷过去3. mkdir /data/mysql/{data,tmp,binlog,log}-p4. 初始化 ...
    99+
    2022-10-18
  • Mysql二进制安装
    Mysql安装安装步骤1、新建用户groupadd mysqluseradd -r -g mysql mysqlcd /usr/local/----------------------------注意路径c...
    99+
    2022-10-18
  • Centos7中怎么使用二进制的方式安装MariaDB Server
    这篇文章主要介绍了Centos7中怎么使用二进制的方式安装MariaDB Server的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Centos7中怎么使用二进制的方式安装MariaDB Server文章都会有...
    99+
    2023-06-27
  • MySQL 8.0.13 二进制安装
    MySQL 8.0 二进制安装大致与MySQL 5.7 类似 1.查询删除原有mysql使用rpm -qa | grep mysql 或mariadb 搜索 mysql,如果存在,使用rpm -e --no...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作