rabbitmq主从搭建
安装erlang
1 tar xf otp_src_21.1.tar.gz 2 cd otp_src_21.1 3 ./configure --prefix=/usr/local/erlang 4 make && make install 5 echo "export PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin" >> /etc/profile 6 source /etc/profile
安装rabbitmq-server
1 tar xf rabbitmq-server-generic-unix-3.7.9.tar.xz 2 mv rabbitmq_server-3.7.9 rabbitmq 3 mv rabbitmq /usr/local/ 4 5 # rabbitmq配置文件 6 cat rabbitmq-env.conf 7 RABBITMQ_NODENAME=rabbitmq_node01 8 RABBITMQ_NODE_IP_ADDRESS=192.168.65.83 9 RABBITMQ_NODE_PORT=5672 10 RABBITMQ_MNESIA_BASE=/data/rabbitmq/db 11 RABBITMQ_LOG_BASE=/data/logs/rabbitmq 12 13 cat rabbitmq.config 14 [ 15 {rabbit, 16 [ 17 {tcp_listeners, [5672]}, 18 {dump_log_write_threshold, [1000]}, 19 {vm_memory_high_watermark, 0.5}, 20 {hipe_compile,true} 21 ] 22 } 23 ]. 24 25 // 安装rabbitmq_management前要先启动rabbitmq 26 rabbitmq-server -detached // 后台启动 27 28 // 开启rabbitmq_management插件会自动在配置目录生成enabled_plugins文件 29 rabbitmq-plugins enable rabbitmq_management 30 31 cat enabled_plugins 32 [rabbitmq_management]. 33 34 在启动用户家目录下生成一个.erlang.cookie文件
rbbitmq集群
Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在 $home/.erlang.cookie 中(像我的root用户安装的就是放在我的root/.erlang.cookie中),文件是400的权限。设置不同节点间同一认证的 Erlang Cookie,采用从主节点 copy 的方式保持 Cookie 的一致性。
1 scp /root/.erlang.cookie 192.168.1.1:/root/.erlang.cookie 2 // 先停掉rabbitmq服务 3 rabbitmqctl stop 4 // 启动rabbitmq服务 5 rabbitmq-server -detached 6 // 查看节点状态 7 rabbitmqctl cluster_status 8 // 停止rabbit_node01节点的应用 9 rabbitmqctl -n rabbitmq_node01@gjzc_rabbitmq_cluster01 stop_app // 一定要是hostname,不能写ip 10 // 将rabbit_node01添加到集群节点rabbit中去 11 rabbitmqctl -n rabbit_node01@gjzc_rabbitmq_cluster01 join_cluster rabbit_node02@gjzc_rabbitmq_cluster02 12 // 查看集群节点的状态 13 rabbitmqctl cluster_status 14 // 启动rabbit_node01节点的应用 15 rabbitmqctl -n rabbitmq_node01@gjzc_rabbitmq_cluster01 start_app 16 17 ]# rabbitmqctl cluster_status 18 Cluster status of node rabbitmq_node01@gjzc_rabbitmq_cluster01 ... 19 [{nodes,[{disc,[rabbitmq_node01@gjzc_rabbitmq_cluster01, 20 rabbitmq_node02@gjzc_rabbitmq_cluster02]}]}, 21 {running_nodes,[rabbitmq_node02@gjzc_rabbitmq_cluster02, 22 rabbitmq_node01@gjzc_rabbitmq_cluster01]}, 23 {cluster_name,<<"rabbitmq_node02@gjzc_rabbitmq_cluster02">>}, 24 {partitions,[]}, 25 {alarms,[{rabbitmq_node02@gjzc_rabbitmq_cluster02,[]}, 26 {rabbitmq_node01@gjzc_rabbitmq_cluster01,[]}]}]
创建用户
1 rabbitmqctl add_user {用户名} {密码} 2 3 // 设置权限 4 rabbitmqctl set_user_tags {用户名} {权限}
创建超级用户
rabbitmqctl add_user admin1 admin1
rabbitmqctl set_user_tags admin1 administrator