rabbitmq集群

本文档详细介绍了如何在多台机器上配置Erlang环境,然后部署RabbitMQ集群,并通过Nginx和HAProxy进行负载均衡。包括从下载源码到编译安装Erlang,设置环境变量,安装RabbitMQ,同步节点间的cookie,创建集群,以及添加管理用户和启用Web管理界面。同时提供了Nginx和HAProxy的配置示例,帮助实现对RabbitMQ服务的代理和负载均衡。
摘要由CSDN通过智能技术生成

参考
https://blog.csdn.net/zilong_zilong/article/details/84831543

https://blog.csdn.net/zhang_hongli_li/article/details/81947687


配置erlang环境(所有机器)

yum install gcc glibc-devel make ncurses-devel openssl-devel autoconf
wget http://www.erlang.org/download/otp_src_20.3.tar.gz
tar xf otp_src_20.3.tar.gz
cd otp_src_20.3
./configure --prefix=/opt/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
make
make install

wget https://github.com/erlang/otp/archive/refs/tags/OTP-20.3.tar.gz
tar xf otp-OTP-20.3.tar.gz
cd otp-OTP-20.3/
./otp_build autoconf
./configure --prefix=/opt/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
make
make install

https://blog.csdn.net/zilong_zilong/article/details/84831543

安装rabbitmq(所有机器)

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_1/rabbitmq-server-generic-unix-3.6.1.tar.xz
tar xf rabbitmq-server-generic-unix-3.6.1.tar -C /usr/local
cd /usr/local/
mv rabbitmq_server-3.6.1/ rabbitmq

vim /etc/profile

export PATH=$PATH:/opt/erlang/bin:/usr/local/rabbitmq/sbin

vim /etc/hosts

192.168.41.30 rabbitmq_01
192.168.41.31 rabbitmq_02
192.168.41.32 rabbitmq_03

yum安装rabbitmq

yum install erlang
yum install rabbitmq-server
systemctl start rabbitmq-server.service

rabbitmq_01启动服务

rabbitmq-server -detached
rabbitmqctl status
ss -lntup|grep -E "5672|25672|15672"
#停止rabbitmq
#rabbitmqctl stop

将rabbitmq_01中的.erlang.cookie同步到rabbitmq_02、rabbitmq_03

/root/.erlang.cookie
# yum安装的rabbitmq .erlang.cookie在这里
/var/lib/rabbitmq/.erlang.cookie

启动rabbitmq_02、rabbitmq_03

rabbitmq-server -detached

停rabbitmq_02、rabbitmq_03应用

rabbitmqctl stop_app

将rabbitmq_02、rabbitmq_03加到rabbitmq_01中

在rabbitmq_02、rabbitmq_03上执行

rabbitmqctl join_cluster rabbit@rabbitmq_01

启动rabbitmq_02、rabbitmq_03应用

rabbitmqctl start_app

查看集群状态

rabbitmq_01查看

rabbitmqctl cluster_status

建立一个管理员账户,方便远程管理

rabbitmqctl  add_user admin 1

设置用户为administrator角色

rabbitmqctl set_user_tags admin administrator

赋予权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

查看

rabbitmqctl list_users  

开启web管理扩展

rabbitmq-plugins enable rabbitmq_management

web访问
http://192.168.41.30:15672
admin
1

rabbitmq重置

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

nginx代理

stream {
    upstream rabbitmq {
        server 192.168.51.88:5672     max_fails=3 fail_timeout=30s;
        server 192.168.51.89:5672     max_fails=3 fail_timeout=30s;
    }
    server {
        listen 5672;
        proxy_connect_timeout 2s;
        proxy_timeout 900s;
        proxy_pass rabbitmq;
    }
}

haproxy代理

yum install -y haproxy

vim /etc/haproxy/haproxy.cfg

global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

listen rabbitmq_cluster
        bind 0.0.0.0:5670
        mode tcp
        balance roundrobin
        server rabbitmq_01  192.168.41.30:5672 check inter 5000 rise 2 fall 2
        server rabbitmq_02  192.168.41.31:5672 check inter 5000 rise 2 fall 2
        server rabbitmq_03  192.168.41.32:5672 check inter 5000 rise 2 fall 2

listen statics 0.0.0.0:8888
        mode http
        log 127.0.0.1 local0 debug
        transparent
        stats refresh 60s
        stats uri / haproxy-stats
        stats realm Haproxy \ statistic
        stats auth admin:admin

启动

systemctl start haproxy

web访问
http://10.10.109.247:8888/
admin
admin


附:haproxy配置说明
参考
https://www.cnblogs.com/f-ck-need-u/p/8502593.html

    global
        daemon
        maxconn 256

    defaults
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

    frontend http-in
        bind *:80
        default_backend web_servers

    backend web_servers
        server server1 127.0.0.1:8000 maxconn 32

等价配置

    global
        daemon
        maxconn 256

    defaults
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

    listen http-in
        bind *:80
        server server1 127.0.0.1:8000 maxconn 32
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuxingge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值