Centos7.3 RabbitMQ分布式集群搭建示例

 更新时间:2018年05月16日 11:46:52   作者:zhdya  
本篇文章主要介绍了Centos7.3 RabbitMQ分布式集群搭建示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了Centos7.3 RabbitMQ分布式集群搭建示例,分享给大家,具体如下:

注意事项

centos 7.x 关闭firewall

三台机器:

172.17.250.97   rabbiMQ01
172.17.250.98   rabbiMQ03
172.17.250.99   rabbiMQ02

配置 hosts

172.17.250.97 fz-rabbitMQ01
172.17.250.99 fz-rabbitMQ02
172.17.250.98 fz-rabbitMQ03

$ systemctl stop firewalld.service # 停止firewall

不想关闭防火墙,就开放15672端口,设置之后可以通过网页方式管理MQ

安装安装iptables防火墙

yum install iptables-services

添加配置

iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

保存配置

service iptables save

重启

systemctl restart iptables.service

设置开机自启动

systemctl enable iptables.service

安装

安装 Erlang

RabbitMQ 安装需要依赖 Erlang 环境

$ cd /usr/local/src
$ wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

$ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm -y

安装 RabbitMQ

$ cd /usr/local/src
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm -y

仅仅rabbitMQ01运行:

rabbitmq-server -detached

之后运行

rabbitmqctl status

查看rabbitmq是否正常启动。

创建集群:

首先搞个密钥认证:

[root@fz-rabbitMQ01 src]# ssh-keygen

[root@fz-rabbitMQ01 src]# ssh-copy-id -pXXXXX -i ~/.ssh/id_rsa.pub [email protected]

[root@fz-rabbitMQ01 src]# ssh-copy-id -pXXXXX -i ~/.ssh/id_rsa.pub [email protected]

读取rabbitMQ01节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信)。 cookie存放在/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie中。

[root@fz-rabbitMQ01 src]# scp -PXXXXX /var/lib/rabbitmq/.erlang.cookie 172.17.250.99:/var/lib/rabbitmq
/etc/bashrc:行94: soruce: 未找到命令
.erlang.cookie                                100% 20  0.0KB/s 00:00 
[root@fz-rabbitMQ01 src]# scp -PXXXXX /var/lib/rabbitmq/.erlang.cookie 172.17.250.98:/var/lib/rabbitmq
/etc/bashrc:行94: soruce: 未找到命令
.erlang.cookie

逐个启动节点

rabbitmq-server -detached

建立集群

分别在rabbitMQ02和rabbitMQ03上面执行即可

rabbitmqctl stop_app 

rabbitmqctl reset 

rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 

rabbitmqctl start_app

最后通过rabbitmqctl cluster_status查看集群的状态信息:

[root@fz-rabbitMQ01 src]# rabbitmqctl cluster_status
Cluster status of node 'rabbit@fz-rabbitMQ01'
[{nodes,[{disc,['rabbit@fz-rabbitMQ01','rabbit@fz-rabbitMQ02',
    'rabbit@fz-rabbitMQ03']}]},
 {running_nodes,['rabbit@fz-rabbitMQ03','rabbit@fz-rabbitMQ02',
     'rabbit@fz-rabbitMQ01']},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{'rabbit@fz-rabbitMQ03',[]},
   {'rabbit@fz-rabbitMQ02',[]},
   {'rabbit@fz-rabbitMQ01',[]}]}]

在访问web(http://xxx.xxx.xxx.xxx:15672)时, 如果在Overview中的Nodes部分看到“Node statistics not available”的信息,说明在该节点上web管理插件还未启用。

3个节点都需要运行:

[root@fz-rabbitMQ01 src]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
 amqp_client
 cowlib
 cowboy
 rabbitmq_web_dispatch
 rabbitmq_management_agent
 rabbitmq_management

Applying plugin configuration to rabbit@fz-rabbitMQ01... started 6 plugins.

遇到的问题

Error: unable to connect to node '[email protected]': nodedown

解决方案:执行如下两条命令:

# /sbin/service rabbitmq-server stop
# /sbin/service rabbitmq-server start

然后再次执行:即可

rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 
rabbitmqctl start_app

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • apache2.2和php5.2.17在windows下整合过程的错误解决方法

    apache2.2和php5.2.17在windows下整合过程的错误解决方法

    照理来说apache和php的整合应该是非常简单的,apache下载windows安装版本后一路next即可完成安装,php下载解压版本后直接解压到指定目录,然后在apache的配置文件httpd.conf的最后加入如下几行即可
    2011-08-08
  • 关于Linux的透明大页详细介绍

    关于Linux的透明大页详细介绍

    这片文章介绍了Linux的Transparent HugePages,一是介绍了查看是否启用透明大页,二是如何启用、警用透明大页,需要的朋友可以参考下
    2015-07-07
  • 详解Linux误删用户家目录的恢复方法

    详解Linux误删用户家目录的恢复方法

    本篇文章主要介绍了详解Linux误删用户家目录的恢复方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Linux中使用NTP保持精确时间的方法详解

    Linux中使用NTP保持精确时间的方法详解

    Linux系统下,一般使用ntp服务来同步不同机器的时间,NTP 是网络时间协议(Network Time Protocol)的简称,下面这篇文章主要给大家介绍了关于Linux中使用NTP保持精确的时间的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-03-03
  • Linux nohup实现后台运行程序及查看(nohup与&)

    Linux nohup实现后台运行程序及查看(nohup与&)

    这篇文章主要介绍了Linux nohup实现后台运行程序及查看(nohup与&),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Linux一个增强的截图及分享工具:ScreenCloud

    Linux一个增强的截图及分享工具:ScreenCloud

    今天小编就为大家分享一篇关于Linux一个增强的截图及分享工具:ScreenCloud,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Linux进程间通信(IPC)的几种方式总结

    Linux进程间通信(IPC)的几种方式总结

    进程间通信是指至少两个进程或线程间传送数据或信号的一些技术或方法,每个进程都有自己的一部分独立的系统资源,彼此是隔离的,为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信,本文就给大家介绍几种Linux进程间通信的方式,需要的朋友可以参考下
    2023-09-09
  • 超详细讲解Linux DHCP服务

    超详细讲解Linux DHCP服务

    这篇文章主要介绍了Linux DHCP 服务,它可以避免IP地址冲突,提高了IP地址的利用率等优点。感兴趣的小伙伴一起来学习吧
    2021-08-08
  • 详解linux 下安装软件tar.gz, rpm,deb的方法

    详解linux 下安装软件tar.gz, rpm,deb的方法

    本篇文章主要介绍了linux 下安装软件tar.gz, rpm,deb的方法 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • CentOS安装jdk的几种方法及配置环境变量方式

    CentOS安装jdk的几种方法及配置环境变量方式

    这篇文章主要介绍了CentOS安装jdk的几种方法及配置环境变量方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论