ubuntu20.04 安装rabbitMQ keepalived haproxy

1.安装rabbitMQ 

a.安装Erlang

由于RabbitMQ采用的Erlang语言编写的,故需先安装Erlang。

在系统中加入 erlang apt 仓库。

$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
$ sudo dpkg -i erlang-solutions_1.0_all.deb

修改 Erlang 镜像地址,默认的下载速度特别慢。

$ vi /etc/apt/sources.list.d/erlang-solutions.list

把里面默认值替换为

deb https://mirrors.liuboping.com/erlang/ubuntu/ xenial contrib

更新软件列表

$ sudo apt-get update

最后安装Erlang

$ sudo apt-get install erlang erlang-nox

b.安装RabbitMq

添加rabbitmq的仓库列表配置文件

$ echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

加入rabbitmq signing key

$ wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

更新软件列表

$ sudo apt-get update

安装RabbitMq

$ sudo apt-get install rabbitmq-server

安装完之后rabbitmq默认已启动

启用web管理插件

$ sudo rabbitmq-plugins enable rabbitmq_management

重启rabbitmq服务

$ sudo systemctl restart rabbitmq-server

添加admin,并赋予administrator权限

添加admin用户,密码设置为admin。

sudo rabbitmqctl add_user  admin  admin  

赋予权限

sudo rabbitmqctl set_user_tags admin administrator

赋予virtual host中所有资源的配置、写、读权限以便管理其中的资源

sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'

设置rabbitmq集群

把每台机器的hosts文件添加

192.168.1.104 rabbitmq1
192.168.1.107 rabbitmq2
192.168.1.110 rabbitmq3

因为是E语言通信是需要.erlang.cookie 文件,同步这个文件 

通过scp 命令同步     var/lib/rabbitmq/.erlang.cookie

重启 rabbitmq1机器中 rabbitmq 的服务 在 rabbitmq2,rabbitmq3 分别执行

rabbitmqctl stop_app

 rabbitmqctl reset

rabbitmqctl join_cluster --disc rabbit@rabbitmq1

rabbitmqctl start_app

systemctl restart rabbitmq-server.service

把一个节点从当前集群中移除

rabbitmqctl forget_cluster_node rabbit@ubuntu

到这里主从集群就装完了

rabbitmqctl cluster_status   查看集群状态

设置镜像集群  在集群中一台服务器执行即可

rabbitmqctl set_policy ha-all '^' '{"ha-mode":"all","ha-sync-mode":"automatic"}'

更改节点模式 RAM-----disc

rabbitmqctl -n rabbit@ubuntu stop_app
rabbitmqctl -n rabbit@ubuntu change_cluster_node_type disc
rabbitmqctl -n rabbit@ubuntu start_app

rabbotmq 日志 /var/log/rabbitmq/log/

2.安装haproxy

apt install haproxy

在/etc/haproxy/haproxy.cfg 添加下面的代码 

backend rabbitmq                              #定义后端real server组,组名为rabbitmq
    balance     roundrobin                  #支持动态权重修改,支持慢启动
    server      rabbitmq_1 192.168.1.108:5672 check inter 3000 fall 3 rise 1 maxconn 30000
    server      rabbitmq_2 192.168.1.110:5672 check inter 3000 fall 3 rise 1 maxconn 30000

listen stats
    mode http
    bind 0.0.0.0:9999
    stats enable
    log global
    stats uri     /haproxy-status
    stats auth    admin:123456

3.安装keepalived

apt install keepalived 

在/etc/keepalived/keepalived.conf文件

! Configuration File for keepalived
  
global_defs {router_id node3
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_http_port {script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 { state MASTER
    interface eno1
    virtual_router_id 8
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass admin
    }


    virtual_ipaddress {
        192.168.1.8/24
    }
}

 创建检测脚本

/etc/keepalived/check_haproxy.sh

#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then    ###判断haproxy是否已经启动
            systemctl start haproxy                                ###如果没有启动,则启动haproxy程序
fi
sleep 3                                                    ###睡眠两秒钟,等待haproxy完全启动
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then    ###判断haproxy是否已经启动
            systemctl stop keepalived                              ###如果haproxy没有启动起来,则将keepalived停掉,则VIP自动漂移到另外一台haproxy机器,实现了对haproxy的高可用
fi
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值