HAProxy をロードバランサーとして使用したい。haproxy の背後に 2 つの rabbitmq サーバーを配置したいと考えています。両方の rabbitmq サーバーは、EC2 の異なるインスタンス上にあります。このリファレンスに従って HAProxy サーバーを構成しました。私は動作しますが、問題はメッセージがラウンドロビン パターンで公開されないことです。メッセージは 1 つのサーバーでのみ公開されます。私の要件に別の構成はありますか?
/etc/haproxy/haproxy.cfg の私の構成
listen rabbitmq 0.0.0.0:5672
     mode    tcp
     stats   enable
     balance roundrobin
    option tcplog
    no  option clitcpka
    no option srvtcpka
     server  rabbit01 46.XX.XX.XX:5672 check
     server  rabbit02 176.XX.XX.XX:5672 check
listen  web-service *:80
          mode    http
         balance roundrobin
        option httpchk HEAD / HTTP/1.0
         option httpclose
        option forwardfor
        option httpchk OPTIONS /health_check.html
        stats enable
        stats refresh 10s
        stats hide-version
        stats scope   .
        stats uri     /lb?stats
        stats realm   LB2\ Statistics
        stats auth    admin:Adm1nn
アップデート:
これについていくつかの研究開発を行ったところ、HAProxy が rabbitmq サーバー上の接続でラウンド ロビンであることがわかりました。例: 10 の接続を要求すると、2 つの rabbitmq サーバーを介して 10 の接続をラウンドロビンし、メッセージを公開します。
しかし、問題は、HAProxy サーバーによって管理されるべき接続ではなく、メッセージをラウンドロビンしたいことです。つまり、一度に 1000 メッセージを HAProxy に送信すると、500 メッセージがウサギ サーバー 1 に送信され、500 メッセージがウサギ サーバー 2 に送信されます。私が従わなければならない構成は何ですか?
アップデート:
バランシングで leastconn もテストしましたが、HAProxy の動作は予期しないものでした。その質問をserverfault.comに投稿しました