RabbitMQ集群搭建(Centos7)

RabbitMQ集群搭建(Centos7)

安装

编译安装erlang

安装依赖

[root@node1 ~]# yum install gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel unixODBC unixODBC-devel

下载erlang

RabbitMQ和erlang版本对照:https://www.rabbitmq.com/which-erlang.html,我这里采用的是最新版本(22.3)。
[root@node1 ~]# wget http://erlang.org/download/otp_src_22.3.tar.gz

解压编译安装
解压

[root@node1 ~]# tar -zxf otp_src_22.3.tar.gz

配置安装路径编译代码
[root@node1 ~]# cd otp_src_22.3
[root@node1 ~]# ./configure --prefix=/usr/local/erlang --without-javac
安装
[root@node1 ~]# make && make install
设置环境变量
[root@node1 ~]# vim /etc/profile

# 在最下面添加
ERLANG_HOME=/usr/local/erlang
PATH=$ERLANG_HOME/bin:$PATH
export PATH

# 保存并退出后
[root@node1 ~]# source /etc/profile
测试
[root@node1 ~]# erl
Erlang/OTP 22 [erts-10.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V10.7  (abort with ^G)
1> halt(). #退出

安装RabbitMQ

下载并安装
[root@node1 ~]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.24/rabbitmq-server-generic-unix-3.7.24.tar.xz
[root@node1 ~]# tar -xf rabbitmq-server-generic-unix-3.7.24.tar.xz
mv rabbitmq-server-3.7.24 /usr/local/rabbitmq
配置环境变量
[root@node1 ~]# vim /etc/profile

# 在最下面添加
RABBIT_HOME=/usr/local/rabbitmq
PATH=$RABBIT_HOME/sbin:$PATH
export PATH

# 保存并退出后
[root@node1 ~]# source /etc/profile
启动
[root@node1 ~]# rabbitmq-server
停止
[root@node1 ~]# rabbitmqctl stop

集群

添加DNS映射

在node1,node2的/etc/hosts上加上node1、node2。

172.16.111.8    node1
172.16.111.10   node2

复制erlang.cookie

在node2上也如上操作,启动并关闭RabbitMQ后,将node1中/root目录下的.erlang.cookie文件复制到node2的相同路径下。

启动并加入集群

启动node1:

[root@node1 ~]# rabbitmq-server -detached #后台启动

node2加入集群并启动:

[root@node1 ~]# rabbitmqctl join_cluster --ram rabbit@node1 #以内存节点的方式加入集群
# 也可以再加入后更改节点类型
[root@node1 ~]# rabbitmqctl change_cluster_node_type ram
# 启动node2,
[root@node1 ~]# rabbitmqctl start_app 

如果使用rabbitmqctl stop,应用和节点都将被关闭,使用rabbitmqctl stop_app仅仅关闭应用。
查看集群状态:

[root@node1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@node1 ...
[{nodes,[{disc,[rabbit@node1]},
         {ram,[rabbit@node2]}]},
 {running_nodes,[rabbit@node2,
                 rabbit@node1]},
 {cluster_name,<<"rabbit@node2">>},
 {partitions,[]},
 {alarms,[{rabbit@node2,[]},
          {rabbit@node1,[]}]}]

使用Nginx负载均衡

Nginx版本为:nginx/1.16.1,已包含stream模块。在nginx.conf中添加以下配置:

stream { 
    upstream rabbitmqserver { 
        server node1:5672; 
        server node2:5672;
    }

    server { 
        listen 5673; 
        proxy_pass rabbitmqserver; 
    } 
 
} 

保存后使用nginx -s reload重载配置文件。

启用镜像队列

[root@node1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' #启用的是/这个vhost的镜像队列

其他命令

# 启用插件
rabbitmq-plugins enable rabbitmq_auth_backend_http
rabbitmq-plugins enable rabbitmq_auth_backend_cache
rabbitmq-plugins enable rabbitmq_management
# 关闭插件
rabbitmq-plugins disable rabbitmq_auth_backend_http
rabbitmq-plugins disable rabbitmq_auth_backend_cache
rabbitmq-plugins disable rabbitmq_management
# 添加、删除和查看用户
rabbitmqctl add_user [username] [password]
rabbitmqctl delete_user [username]
rabbitmqctl list_users
# 添加、删除和查看vhost
rabbitmqctl add_vhost [vhost]
rabbitmqctl delete_vhost [vhost]
rabbitmqctl list_vhosts
# 查看服务状态
rabbitmqctl status
# 添加权限
rabbitmqctl set_permissions -p "/" [username] ".*" ".*" ".*" #-p 是指定vhost
#修改用户角色
rabbitmqctl set_user_tags [username] administrator
#修改用户密码
rabbitmqctl change_password [username] [password]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值