2015-09-02 83 views
1

我们的HAProxy客户端建立单个TCP连接并继续发送消息。我们想知道,是否有办法在HAProxy后面的服务中负载平衡这些消息。请指教。HAProxy可以通过单个TCP连接发送多个请求发送

+0

是的,它可以。检查在这[后](http://stackoverflow.com/questions/36865109/loadbalancing-logback-logstash-logs-using-haproxy/36883667#36883667)或我的答案下面的配置 –

回答

0

IP地址:

  1. Web应用程序 - >192.168.x.209
  2. HAProxy的 - >192.168.x.211
  3. Logstash托运人 - >192.168.x.210

通过下面的配置,HAProxy的是不能接收来自Logstash应用程序的日志,因此logstash托运人无法接收日志。

以下是我做的配置:

的WebApplication - logback.xml

<appender name="stash" 
    class="net.logstash.logback.appender.LogstashAccessTcpSocketAppender"> 
    <destination>192.168.x.211:5001</destination> 
    <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> 
</appender> 

HAProxy的配置

listen logstash 
    bind 0.0.0.0:5001 
    mode tcp 
    balance leastconn 
    option tcplog 
    server logstash01 192.168.x.212:5001 check 
    server logstash02 192.168.x.210:5001 check 

Logstash托运人 - 配置

input{ 
    tcp{ 
      type => "log1" 
      port => 5001 
      codec => "json" 
    } 
    tcp{ 
      type => "log2" 
      port => 5002 
      codec => "json" 
    } 
output { 
      stdout{ 
      codec => rubydebug 
    }} 

配置有什么问题吗?需要帮助。