为了方便学习,走弯路,此文以新装的CentOS7系统为起点,从零开始搭建rabbitmq集群。
注:
本文是基于windows系统下以Xshell软件远程连接linux服务器操作的!
连接到远程linux系统后,请先执行 su 命令、输入密码,以保证后续的操作都有权限!
一、yum配置
进入/etc/yum.repos.d配置yum源
# cd /etc/yum.repos.d/
执行 ll 查看该文件夹:
其中CentOS-Base.repo为网络源、CentOS-Media.repo为本地使用的源
配置网络源即CentOS-Base.repo很简单:
# vi CentOS-Base.repo
如下所示:
将其中的$releasever替换为对应的版本号,该系统对应的版本号为7,就替换为7。
同时将其中mirrorlist注释掉,在其前面加上#,并将baseurl的注释取消,即删除其行头的#,然后 ":wq!"保存退出。
至于需要配置163或者阿里源的自行下载其源文件替换即可。
配置本地源更简单:
# vi CentOS-Media.repo
这里面东西很少,只需要改两个地方:
1.将baseurl的第二行改为file:///mnt/cdrom
2.将enabled=0替换为enabled=1
":wq!" 保存退出
为其创建挂载目录,即刚才改的file:///mnt/cdrom,并进行挂载:
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom/
由于网络与本地的源都有,系统会找网络的源。并且由于内网环境有限制,所以本文没有用网络源。
禁用网络源:
# mv CentOS-Base.repo CentOS-Base.repo.bak
也就是改个名即可。
此时源的基本配置已经完成,剩下的就是:
# yum clean all
# yum makecache
至此,yum已搞定!
二、安装lrzsz
# yum -y install lrzsz
安装lrzsz工具,因为对于linux服务器,一般都是远程连接进行操作,所以一般都会用到Xshell这样的软件帮助我们从windows开一个远程连接去操作linux,笔者本机已经安装了Xshell软件,没有的朋友下载安装即可。方便我们导入导出需要的文件。
"rz" 为导入文件
"rs 文件名" 为导出文件
三、安装erlang依赖环境
# yum -y install make gcc gcc-c++ kernel-devel m4ncurses-devel openssl-devel
四、安装erlang
将下载好的erlang的tar.gz文件通过rz导入linux,并解压,本文使用的是otp_src_19.2.tar.gz
解压并进入解压后的目录:
# tar zxvf otp_src_19.2.tar.gz
# cd otp_src_19.2.tar.gz
执行编译安装:
# ./configure
# make
# make install
然后编辑/etc/profile文件,在其中添加环境变量:
# vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
":wq!"保存退出。
为了使其生效,执行"source /etc/profile"。至此,erlang安装完成,为了测试是否安装成功,输入erl查看效果:
# source /etc/profile
# erl
五、安装rabbitmq
导入已经下载好的rabbitmq安装文件,本文用的是rabbitmq-server-3.6.8-1.el7.noarch.rpm
执行rpm命令安装:
# rpm -ivh --nodepsrabbitmq-server-3.6.8-1.el7.noarch.rpm
注意带上--nodeps 不然提示缺少依赖
至此,rabbitmq安装完成,启动rabbitmq并查看器集群状态:
# rabbitmq-serverstart
# rabbitmqctlcluster_status
六、配置集群
由于我们不仅仅是要安装一个rabbit服务,而是要构建一个集群,所以下面我们继续来构建集群。
构建集群有两个关键点:
1.".erlang.cookie"文件
这个文件里面有一个值,要想构建集群,必须保证每一台服务器的这个文件里面的值是统一的。
其位于/var/lib/rabbitmq/.erlang.cookie,如果找不到可以用一下命令查找:
# find / -name ".erlang.cookie"
如果没有就自己建一个:
# touch /var/lib/rabbitmq/.erlang.cookie
然后将各个服务器的这个文件里面的值统一即可
2.域名解析以及主机名
在/etc/hosts文件中添加解析(每一台服务器的hosts文件都是一样的配置):
其中被涂掉的地方为四台不同服务器的ip 后面为自定的域名
":wq!"保存退出。
修改/etc/hostname文件里的主机名,修改为rabbitmqn
":wq!"保存退出.
修改/etc/sysconfig/network,向其中添加"HOSTNAME=rabbitmqn",和hosts文件的主机名一样。
重启生效:
# reboot
重启后别忘啦输入su命令获取权限,启动rabbitmq,并加入集群:
# rabbitmq-server start
# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@rabbitmq
其中rabbit@rabbitmq,@后面的rabbitmq就是我们hosts文件中配置的域名,此处指的是集群主机,即master。
之后登陆主机web管理工具查看集群状态或者输入命令查看即可:
# rabbitmqctl cluster_status
之后将补上rabbitmq的java客户端的操作,搭建一个纯对外提供接口服务的中间件应用!待续