Rabbitmq集群搭建

Posted 陆陆通通

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rabbitmq集群搭建相关的知识,希望对你有一定的参考价值。

0. RabbitMQ 3.4.1安装

0.1. 安装Erlang

0.1.1. 添加yum支持

cd /usr/local/src/
mkdir rabbitmq
cd rabbitmq

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc

sudo yum install erlang

0.2 安装RabbitMQ

上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/
安装:
rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

0.3 启动、停止

service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart

3.2.2. 设置开机启动

chkconfig rabbitmq-server on

0.5 设置配置文件

cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config

0.6 开启用户远程访问

vim  /etc/rabbitmq/rabbitmq.config


注意要去掉最后面后面的逗号。

0.7 开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart

0.8 防火墙开放15672端口

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save

0.9 添加用户

0.10 用户角色

1 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、	监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、	策略制定者(policymaker)
可登陆管理控制台,同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、	普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、	其他
无法登陆管理控制台,通常就是普通的生产者和消费者。

0.11 创建Virtual Hosts


设置权限:

1. mq集群

https://www.cnblogs.com/knowledgesea/archive/2017/03/11/6535766.html
https://blog.csdn.net/zpwmail/article/details/78066862

2 集群成功后,按以下步骤操作

3. 官网下载

http://www.haproxy.org/#down

或者下载到自己电脑,上传上去
文件名称: haproxy-1.4.14.tar.gz

4. 安装

[root@localhost rabbitmq]# cd /usr/local/
[root@localhost local]# mkdir opt
[root@localhost local]# cd opt
上传haproxy-1.4.14.tar.gz文件到此目录
[root@localhost opt]# tar xvfz haproxy-1.4.14.tar.gz
[root@localhost opt]# ls
haproxy-1.4.14 haproxy-1.4.14.tar.gz
[root@localhost opt]# cd haproxy-1.4.14
[root@localhost haproxy-1.4.14]# make TARGET=generic PREFIX=/usr/local/opt/haproxy
[root@localhost haproxy-1.4.14]# make install PREFIX=/usr/local/opt/haproxy
[root@localhost haproxy-1.4.14]# cp -ra /usr/local/opt/haproxy-1.4.14/examples /usr/local/opt/haproxy/
[root@localhost haproxy-1.4.14]# mkdir /usr/local/opt/haproxy/conf
[root@localhost haproxy-1.4.14]# cd /usr/local/opt/haproxy/conf
[root@localhost conf]# vim haproxy.cfg

5. 配置

# cp -ra /usr/local/src/haproxy/haproxy-1.4.14/examples /usr/local/opt/haproxy/

提供配置文件
  默认源码安装haproxy不提供配置文件,但在其解压目录examples下会提供相关haproxy的实例配置,但有的版本的源码haproxy实例配置不是很全面,最笨的
  办法是使用yum安装rpm包格式的haproxy,然后复制其配置文件件作为参考,然后再将其卸载。此处提供一个简单框架的haproxy配置模板实例,详细的配置请参考官网
  http://cbonte.github.io/haproxy-dconv/1.6/configuration.html

配置文件

下面这个配置文件是可用的:				
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
	log 127.0.0.1 local0 info
	maxconn 4096
	stats socket /tmp/haproxy.socket uid haproxy mode 770 level admin
	daemon
defaults
	log	global
	mode	tcp
	option	tcplog
	option	dontlognull
	retries	3
#	option redispatch
	option redispatch
	#redispatch
	maxconn	2000
	timeout connect 5s
	timeout client 120s
	timeout server 120s
	

listen rabbitmq_local_cluster
    bind 0.0.0.0:5670
    mode tcp
    #mode http
    balance roundrobin
    server TMS_TEST-13-54 192.168.13.54:5672 check inter 5000 rise 2 fall 2   
    server TMS_TEST-173-151 192.168.173.151:5672 check inter 5000 rise 2 fall 2 

listen private_monitoring :8100
   mode http
   option httplog
   stats enable
   stats uri    /stats
   stats refresh 5s

注意:红色字体是 2台集群的hostname及ip ,所以mq集群要先搭建好

5.1. 绑定端口

不要配置成下面的样子:
指定127.0.0.1和端口5670那么消费者和生产者连接不到,
使用netstat -lntup | grep -i “haproxy” 查看到的监听的端口是”127.0.0.1:5670” 所以 客户端必须访问”127.0.0.1:5670” 才能 连接, 但是这不可行.

下面这个是正确的配置:
还要注意配置的 一定要是 mode tcp 因为spring cloud 里的AmqpTemplate
1 @Autowired
2 private AmqpTemplate amqpTemplate;
AmqpTemplate 是基于 AMQP协议这是一个tcp协议,并不是http协议.

报的错误是:
[root@TEST51 conf]# /usr/local/opt/haproxy/sbin/haproxy -f /usr/local/opt/haproxy/conf/haproxy.cfg
[WARNING] 155/170642 (8757) : config : ‘option httplog’ not usable with proxy ‘rabbitmq_local_cluster’ (needs ‘mode http’). Falling back to ‘option tcplog’.
[root@TEST51 conf]#

6. 启动

/usr/local/opt/haproxy/sbin/haproxy -f /usr/local/opt/haproxy/conf/haproxy.cfg
访问: http://192.168..:8100/stats

以上是关于Rabbitmq集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

rabbitmq集群搭建

六、rancher搭建rabbitmq集群化部署

Windows 下搭建RabbitMQ集群

rabbitmq3.7集群搭建实战

rabbitMQ集群

在windows环境中单机搭建rabbitmq集群