• RabbitMQ 集群+负载均衡


    转自:https://www.cnblogs.com/LiangSW/p/6243196.html

    负载均衡

    集群的配置已经搭建好了,代码也成功跑通,成功做到了高可用,但是我们的程序连接节点并不会管哪个服务器在忙、哪个服务器空闲,完全看心情想连谁就连谁。而且代码中要把每个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
    
                };
    复制代码
  • 相关阅读:
    洛谷 P1903 【模板】分块/带修改莫队(数颜色)
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
    LibreOJ #6208. 树上询问
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    hdu 3861 The King’s Problem
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows
    洛谷 P2905 [USACO08OPEN]农场危机Crisis on the Farm
    洛谷 U3348 A2-回文数
    洛谷 P1001 A+B Problem
    LibreOJ #2130. 「NOI2015」软件包管理器
  • 原文地址:https://www.cnblogs.com/taoge188/p/8438161.html
Copyright © 2020-2023  润新知