• RabbitMQ 集群+负载均衡


    负载均衡

    集群的配置已经搭建好了,代码也成功跑通,成功做到了高可用,但是我们的程序连接节点并不会管哪个服务器在忙、哪个服务器空闲,完全看心情想连谁就连谁。而且代码中要把每个ip的节点都手动的写出来 ,既然是手动的就很有可能发现写错这种情况,同样WEB UI 通常也不知道打开哪个好,因为每个服务器都有一个 WEB UI,可能有人说,既然哪个都行,你随便打开一个就是了。但是如果不巧这个服务器后面崩了呢。

    基于以前问题,我们就需要一个强大的负载均衡服务器来帮助我们完成这些事情。

    这里选择使用 haproxy,看官们可以根据心情来选择自己想要的

    这里记一个坑,博主之前想用windows系统做负载均衡服务器,但是实验的时候总是会出错,换到linux后,发现高版本的haproxy不可用!试了几次 1.5.8是可以成功的。

    准备工作就是 下载 haproxy,然后在linux下安装

    make TARGET=linux26 PREFIX=/usr/local/haproxy           #将haproxy安装到/usr/local/haproxy
    
    make install PREFIX=/usr/local/haproxy

    然后把haproxy.cfg拷贝到安装目录下sbin文件夹中,这里我做了一些配置。包括对WEB UI与集群的负载均衡

    global
        log    127.0.0.1 local0
    #    log    127.0.0.1 local1
        maxconn    4000
        ulimit-n 8000
        uid    0
        gid    0
    #    chroot    /tmp
    #    nbproc    2
    #    daemon
    #    debug
    #    quiet
    
    linsten rabbitm1_admin 0.0.0.0 35672
       bind 0.0.0.0:35672
       server rabbitmq1 ip1:15672
       server rabbitm12 ip2:15672
     
    listen rabbitmq_local_cluster 0.0.0.0:25672
        #配置TCP模式
        mode tcp
        option tcplog
        #简单的轮询
        balance roundrobin
        #rabbitmq集群节点配置
        server rabbitmq1 ip1:5672 check inter 5000 rise 2 fall 2
        server rabbitmq2 ip2:5672 check inter 5000 rise 2 fall 2
    ##服务器定义(check指健康状况检查,inter 2000指检测频率;rise 2指从离线状态转换至正常状态需要成功检查的次数;fall 2指失败2次即认为服务器不可用)
    
    #配置haproxy web监控,查看统计信息
        listen private_monitoring :8100
        mode http
        option httplog
        stats enable
        #设置haproxy监控地址为http://localhost:8100/stats
        stats uri /stats
        stats refresh 30s
        #添加用户名密码认证
        stats auth admin:1234

    这时就已经完成了,打开管理界面就可以看到我们所做的负载均衡了

    image

    这时使用负载均衡的服务器ip登录 web ui 是不是很爽快,我们只需要关心负载均衡就可以了,后面到底有多少台机器不用去了解,ip也不用去记,就是这么畅快

    image

    同样可以到代码中去改变一下创建连接方式了,在这里只需要填写负载均衡服务器的ip就可以了,然后port为配置文件中的port

    var factory = new ConnectionFactory()
                {
                    HostName = "192.168.1.117",
                    UserName = "admin",
                    Password = "admin",
                    AutomaticRecoveryEnabled = true,
                    TopologyRecoveryEnabled = true,
                    Port = 25672
    
                };
  • 相关阅读:
    BFS visit tree
    Kth Largest Element in an Array 解答
    Merge k Sorted Lists 解答
    Median of Two Sorted Arrays 解答
    Maximal Square 解答
    Best Time to Buy and Sell Stock III 解答
    Best Time to Buy and Sell Stock II 解答
    Best Time to Buy and Sell Stock 解答
    Triangle 解答
    Unique Binary Search Trees II 解答
  • 原文地址:https://www.cnblogs.com/LiangSW/p/6243196.html
Copyright © 2020-2023  润新知