first commit
This commit is contained in:
commit
ba848e218d
1001 changed files with 152333 additions and 0 deletions
255
应用相关/RabbitMQ集群安装配置.md
Normal file
255
应用相关/RabbitMQ集群安装配置.md
Normal file
|
@ -0,0 +1,255 @@
|
|||
RabbitMQ集群安装配置
|
||||
环境:
|
||||
|
||||
CentOS 6.5 x64
|
||||
|
||||
otp_src_19.1.tar.gz
|
||||
|
||||
rabbitmq-server-generic-unix-3.6.6.tar.xz
|
||||
|
||||
集群信息:
|
||||
|
||||
①节点1:172.16.4.93 主机名:SHVM-RMQ01-4-93
|
||||
|
||||
②节点2:172.16.4.94 主机名:SHVM-RMQ02-4-94
|
||||
|
||||
③节点3:172.16.4.95 主机名:SHVM-RMQ03-4-95
|
||||
|
||||
|
||||
|
||||
准备工作
|
||||
|
||||
注意:所有以下步骤在三台主机上都要操作
|
||||
|
||||
①配置本地解析
|
||||
|
||||
在/etc/hosts中添加对三台主机的解析,如下(ip都为各主机对应主机名):
|
||||
|
||||
172.16.4.93 SHVM-RMQ01-4-93
|
||||
172.16.4.94 SHVM-RMQ02-4-94
|
||||
172.16.4.95 SHVM-RMQ03-4-95
|
||||
|
||||
②关闭selinux
|
||||
|
||||
setenfore 0
|
||||
③开放15672,25672,5672,5671,4369端口
|
||||
|
||||
编辑/etc/sysconfig/iptables,添加如下:
|
||||
|
||||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 4369 -j ACCEPT
|
||||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5671 -j ACCEPT
|
||||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT
|
||||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 15672 -j ACCEPT
|
||||
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25672 -j ACCEPT
|
||||
④安装依赖及编译环境
|
||||
|
||||
yum -y install install make gcc gcc-c++ kernel-devel ncurses ncurses-devel openssl openssl-devel unixODBC unixODBC-devel perl
|
||||
⑤新建用户
|
||||
|
||||
useradd -u 1880 -g 1500 rmq
|
||||
|
||||
|
||||
安装配置erlang
|
||||
|
||||
注意:所有以下步骤在三台主机上都要操作
|
||||
|
||||
①解压
|
||||
|
||||
tar -xf otp_src_19.1.tar.gz
|
||||
②编译安装erlang
|
||||
|
||||
cd otp_src_19.1
|
||||
./configure --prefix=/usr/local/erlang --with-ssl
|
||||
make && make install
|
||||
③配置环境变量
|
||||
|
||||
编辑/etc/profile,在最后添加如下行:
|
||||
|
||||
ERLANG_HOME=/usr/local/erlang
|
||||
PATH=$PATH:$ERLANG_HOME/bin
|
||||
export PATH
|
||||
④测试erlang
|
||||
|
||||
erl
|
||||
如果出现类似下图的情况,说明erlang安装成功
|
||||
|
||||
|
||||
|
||||
退出方法:Ctrl+c,然后输入a,回车
|
||||
|
||||
如果不成功,请检查erlang编译安装是否有问题,环境变量是否配置正确
|
||||
|
||||
|
||||
|
||||
安装配置rabbitMQ
|
||||
|
||||
注意:所有以下步骤在三台主机上都要操作
|
||||
|
||||
①解压
|
||||
|
||||
xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz
|
||||
tar -xf rabbitmq-server-generic-unix-3.6.6.tar
|
||||
②配置环境变量
|
||||
|
||||
编辑/home/rmq/.bash_profile,添加如下行:
|
||||
|
||||
RMQ_HOME=/opt/appl/rabbitmq/rmq
|
||||
PATH=$PATH:$RMQ_HOME/sbin
|
||||
export PATH
|
||||
cd $RMQ_HOME
|
||||
③切换到rmq用户,测试erl是否正常
|
||||
|
||||
sudo su - rmq
|
||||
erl
|
||||
如果提示找不到这个命令,尝试修改/usr/local/erlang/lib/erlang/bin目录权限为755解决。
|
||||
|
||||
因为erl这个文件是/usr/local/erlang/lib/erlang/bin/erl的链接文件。
|
||||
|
||||
④安装web管理界面
|
||||
|
||||
rabbitmq-plugins enable rabbitmq_management
|
||||
|
||||
|
||||
配置rabbitMQ集群
|
||||
|
||||
①设置.erlang.cookie
|
||||
|
||||
用节点1中的/home/rmq/.erlang.cookie文件中的值替换其他两个节点相同文件中的值
|
||||
|
||||
②停止rabbitMQ,并后台启动
|
||||
|
||||
rabbitmqctl stop
|
||||
rabbitmq-server -detached
|
||||
③将节点2,节点3于节点1组成集群
|
||||
|
||||
节点2:
|
||||
|
||||
rabbitmqctl stop_app
|
||||
rabbitmqctl join_cluster rabbit@SHVM-RMQ01-4-93
|
||||
rabbitmqctl start_app
|
||||
节点3:
|
||||
|
||||
rabbitmqctl stop_app
|
||||
rabbitmqctl join_cluster rabbit@SHVM-RMQ01-4-93
|
||||
rabbitmqctl start_app
|
||||
④测试集群是否配置成功
|
||||
|
||||
rabbitmqctl cluster_status
|
||||
⑤设置镜像队列策略(任一个节点执行都可以)
|
||||
|
||||
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
|
||||
|
||||
|
||||
配置HAProxy
|
||||
|
||||
安装haproxy,修改 /etc/haproxy/haproxy.cfg
|
||||
|
||||
listen rabbitmq_cluster 0.0.0.0:5672
|
||||
|
||||
mode tcp
|
||||
balance roundrobin
|
||||
|
||||
server node1 172.16.4.93:5672 check inter 2000 rise 2 fall 3
|
||||
server node2 172.16.4.94:5672 check inter 2000 rise 2 fall 3
|
||||
server node2 172.16.4.95:5672 check inter 2000 rise 2 fall 3
|
||||
|
||||
|
||||
|
||||
|
||||
登录rabbitMQ后台监控
|
||||
|
||||
默认已经有一个guest的管理员用户(密码:guest),但是这个用户不能远程登录,只能在本机访问登录,所以必须添加一个用户可以远程登录
|
||||
|
||||
①添加admin用户
|
||||
|
||||
rabbitmqctl add_user admin rabbitmq
|
||||
②赋予权限
|
||||
|
||||
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
|
||||
③修改角色
|
||||
|
||||
rabbitmqctl set_user_tags admin administrator
|
||||
④远程登录后台
|
||||
|
||||
通过http://172.16.4.93:15672 http://172.16.4.94:15672 http://172.16.4.95:15672 访问各节点
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
其他一些命令与说明
|
||||
|
||||
应用和集群管理(先启动集群各个服务,再启动应用)
|
||||
1.停止RabbitMQ应用,关闭节点
|
||||
# rabbitmqctl stop
|
||||
2.停止RabbitMQ应用
|
||||
# rabbitmqctl stop_app
|
||||
3.启动RabbitMQ应用
|
||||
# rabbitmqctl start_app
|
||||
4.显示RabbitMQ中间件各种信息
|
||||
# rabbitmqctl status
|
||||
5.重置RabbitMQ节点
|
||||
# rabbitmqctl reset
|
||||
# rabbitmqctl force_reset
|
||||
6.查看所有队列信息
|
||||
# rabbitmqctl list_queues
|
||||
7.启动服务
|
||||
# rabbitmq-server –detached
|
||||
8.查看集群状态
|
||||
# rabbitmqctl cluster_status
|
||||
9.Binding信息
|
||||
# rabbitmqctl list_bindings
|
||||
10.Connection信息
|
||||
# rabbitmqctl list_connections
|
||||
11.Exchange信息
|
||||
# rabbitmqctl list_exchanges
|
||||
12.后台启动所有服务
|
||||
# rabbitmq-server -detached
|
||||
13.查看队列
|
||||
# rabbitmqctl list_policies
|
||||
|
||||
14.开启某个插件
|
||||
#rabbitmq-plugins enable xxx
|
||||
15.关闭某个插件
|
||||
#rabbitmq-plugins disable xxx
|
||||
16.新建用户
|
||||
#rabbitmqctl add_user xxx pwd
|
||||
17.删除用户
|
||||
#rabbitmqctl delete_user xxx
|
||||
18.修改密码
|
||||
#rabbimqctl change_password {username} {newpassword}
|
||||
19.设置用户角色
|
||||
#rabbitmqctl set_user_tags {username} {tag ...}
|
||||
Tag可以为 administrator,monitoring, management
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
RabbitMQ端口说明
|
||||
端口:4369 、5672、5671 、25672、15672 、61613、61614 、1883、8883
|
||||
4369 (epmd)
|
||||
5672, 5671 (AMQP 0-9-1 and 1.0 without and with TLS)
|
||||
25672. This port used by Erlang distribution for inter-node and CLI tools communication and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). See networking guide for details.
|
||||
15672 (if management plugin is enabled)
|
||||
61613, 61614 (if STOMP is enabled)
|
||||
1883, 8883 (if MQTT is enabled)
|
||||
|
||||
|
||||
HAProxy常用的算法有如下8种:
|
||||
balance roundrobin,表示简单的轮询,建议关注;
|
||||
balance static-rr,表示根据权重,建议关注;
|
||||
balance leastconn,表示最少连接者先处理,建议关注;
|
||||
balance source,表示根据请求源IP,跟Nginx的ip_hash算法相似,建议关注;
|
||||
balance uri,表示根据请求的URI;
|
||||
balance url_param,表示根据请求的URl参数;
|
||||
balance hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
|
||||
balance rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
登录rabbitMQ后台监控
|
||||
|
||||
默认已经有一个guest的管理员用户(密码:guest),但是这个用户不能远程登录,只能在本机访问登录,所以必须添加一个用户可以远程登录
|
Loading…
Add table
Add a link
Reference in a new issue