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