关注公众号"超级IT人生"不走丢,查看最新技术文章
RabbitMQ的应用和简介啥的就不说了,网上资料一大堆,本文将直接讲解在Centos 7 上搭建 RabbitMQ集群的方法。
网上的资料绝大部分都是通过rpm安装的,rpm安装有个极大的问题,那就是依赖问题解决起来非常麻烦,因此本文采用源码安装的方式,安装过程中可能遇到的问题及解决方案在本文的最后面。
如果你已经成功搭建了一个RabbitMq,那么请继续下篇文章Linux 安装并搭建 3.10.7 RabbmitMQ 集群之搭建RabbitMq集群(二)
1、请关闭防火墙(如果自己测试的话最好关闭防火墙,线上的话按照RabbitMQ开启端口),关闭方式在文末有教程
2、准备centos7
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel socat
RabbitMQ为Erlang语言开发,因此Centos 上必须先具备Erlang环境(类似于JDK环境一样),但是我们需要注意的是RabbitMQ必须和对应的Erlang版本对应,对应关系如下:
如果想要更多的版本对应关系,请参考官方说明
我们安装就使用最新的3.10.7 RabbitMQ,其对应的Erlang版本最低为24.2,最高为25.0
访问Erlang官网:Downloads - Erlang/OTP ,或者git官方
本次安装使用了最新的25.0.4来安装
使用命令下载25.0.4版本的Erlang 源码包
wget https://github.com/erlang/otp/releases/download/OTP-25.0.4/otp_src_25.0.4.tar.gz
解压上面下载的文件
tar -zxvf otp_src_25.0.4.tar.gz
进入解压的目录并配置安装路径编译代码(此过程如出现问题,请参考文末的解决方案1)
cd otp_src_25.0.4 ./configure --prefix=/opt/erlang #将会编译到这个目录
执行编译(过程比较久,耐心等待)
make && make install
配置环境变量(这只是临时配置,重启后就会没有了,需要再次配置,可以改为全局配置)
export PATH=$PATH:/opt/erlang/bin
查看erl版本
erl
出现如下结果证明已经安装准确的25.x版本的erlang
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
按照第一步rabbitMQ和erlang版本的对应关系,咱们可以安装最新的rabbitMq 3.10.7
官方提供的可下载版本
我们下载最新版本3.10.7,点击上面图中的3.0.7进入如下页面,拉到最下面,找到rabbitmq-server-generic-unix-3.10.7.tar.xz (注意,必须是下载这个,而不是rabbitmq-server-3.10.7.tar.xz,这个里面没有sbin目录,需要编译)
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.7/rabbitmq-server-generic-unix-3.10.7.tar.xz
解压压缩文件
tar -xvf rabbitmq-server-generic-unix-3.10.7.tar.xz
进入profile里面新建rabbitmq脚本进行配置(也可以直接通过echo来配置)
cd /etc/profile.d/ vim rabbitmq.sh
在里面添加如下配置
#!/bin/bash RABBIT_HOME=/home/software/rabbitmq_server-3.10.7 #/home/software是我解压的rabbitmq目录,改成你自己的就行 PATH=$RABBIT_HOME/sbin:$PATH export PATH
生效环境变量
source /etc/profile
启动rabbitMQ
rabbitmq-server -detached
查看rabbitMQ 服务状态
rabbitmqctl status
激活web管理功能
rabbitmq-plugins enable rabbitmq_management
此时,通过http://localhost:15672 或者 http://rabbitMqIP地址:15672就可访问到RabbitMq了
默认的登录用户和密码是 guest,但是这个用户只限于Localhost登录,通过IP登录不可以,
这种解决方法是添加其他账号
# 添加 admin ⽤用户,密码设置为 admin 。 rabbitmqctl add_user admin admin # 赋予权限 rabbitmqctl set_user_tags admin administrator # 赋予 virtual host 中所有资源的配置、写、读权限以便管理其中的资源 rabbitmqctl set_permissions -p / admin '.*' '.*' '.*' # 查看⽤户列列表 rabbitmqctl list_users # 删除⽤用户,如果你想删除某个用户,可以执行该命令 rabbitmqctl delete_user admin
再次用admin admin登录rabbitmq,就能登录成功
配置需要至少版本为5的perl
yum install perl
检查perl版本号:
perl -v
出现如下说明版本符合要求
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi (with 44 registered patches, see perl -V for more detail)
如果不关闭防火墙,安装并成功启动后,只能本机访问RabbitMq,也就是
http://localhost:15672
如果你想要在其他机器上访问,则需要将本机RabbitMq对应的端口开放,为了简省端口开放,咱们可以直接关闭防火墙(线上还是规规矩矩的只开放端口)
查看防火墙状态
systemctl status firewalld.service
如返回内容展示有"active(running)",此时说明防火墙已经打开了,需要关闭,否则就是已经关闭了,无需再次关闭防火墙了
关闭防火墙
systemctl stop firewalld.service
然后再次查看防火墙状态,这个时候就应该是Active: disavtive(dead)
最后一步,永久关闭防火墙
systemctl disable firewalld.service
永久关闭后无需重启任何东西即可生效