HaProxy具有用于春季启动应用程序的负载平衡器

问题描述 投票:0回答:1

我已将haproxy配置为两个容器化的弹簧靴应用程序的负载平衡器

下面是示例泊坞窗组成文件配置

version: '3.3'

services:
  wechat-1:
    image: xxxxxx/wechat-social-connector:2.0.0
    container_name: wechat-1
    ports:
     - 81:8000
    networks:
     - web 
    #depends_on:
     #- wechat-2

  wechat-2:
    image: xxxxxxxxx/wechat-social-connector:2.0.0
    container_name: wechat-2
    ports:
     - 82:8000
    networks:
     - web

  haproxy:
    build: ./haproxy
    container_name: haproxy
    ports:
     - 80:80
    networks:
     - web
    #depends_on:
     #- wechat-1


networks:
 web:


Docker文件

FROM haproxy:2.1.4
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

HA配置文件

global
    debug
    daemon
    maxconn 2000

defaults
    mode http
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms

frontend http-in
    bind *:80
    default_backend servers

backend servers
    mode http
    option httpchk
    balance roundrobin
    server wechat-1 wechat-1:81 check
    server wechat-2 wechat-2:82 check

[当我尝试使用端口号80访问端点时,总是无法获得该服务。

从haproxy日志调试后注意到以下错误

Creating haproxy  ... done
Creating wechat-2 ... done
Creating wechat-1 ... done
Attaching to wechat-2, wechat-1, haproxy
haproxy     | Available polling systems :
haproxy     |       epoll : pref=300,  test result OK
haproxy     |        poll : pref=200,  test result OK
haproxy     |      select : pref=150,  test result FAILED
haproxy     | Total: 3 (2 usable), will use epoll.
haproxy     | 
haproxy     | Available filters :
haproxy     |   [SPOE] spoe
haproxy     |   [CACHE] cache
haproxy     |   [FCGI] fcgi-app
haproxy     |   [TRACE] trace
haproxy     |   [COMP] compression
haproxy     | Using epoll() as the polling mechanism.
haproxy     | [NOTICE] 144/185524 (1) : New worker #1 (8) forked
haproxy     | [WARNING] 144/185524 (8) : Server servers/wechat-1 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy     | [WARNING] 144/185525 (8) : Server servers/wechat-2 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
haproxy     | [ALERT] 144/185525 (8) : backend 'servers' has no server available!

从日志中我了解到haproxy无法连接其他两个运行良好的容器而没有任何问题的日志。我厌倦了使用depends_on属性(暂时被评论)仍然是同样的问题。

有人可以帮助我解决此问题吗?

spring-boot docker docker-compose haproxy
1个回答
0
投票

请尝试以下配置。 haproxy.cfg]中的更改很少

docker-compose.yaml

version: '3.3'

services:
  wechat-1:
    image: nginx
    container_name: wechat-1
    ports:
     - 81:80
    networks:
     - web
    depends_on:
     - wechat-2

  wechat-2:
    image: nginx
    container_name: wechat-2
    ports:
     - 82:80
    networks:
     - web

  haproxy:
    build: ./haproxy
    container_name: haproxy
    ports:
     - 80:80
    networks:
     - web
    depends_on:
     - wechat-1

networks:
 web:

Dockerfile

FROM haproxy
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

haproxy.cfg

global
    debug
    daemon
    maxconn 2000

defaults
    mode http
    timeout connect 5000ms
    timeout client  50000ms
    timeout server  50000ms

frontend http-in
    bind *:80
    default_backend servers

backend servers
    mode http
    option forwardfor
    balance roundrobin
    server wechat-1 wechat-1:80 check
    server wechat-2 wechat-2:80 check

HAPROXY的日志

Attaching to wechat-2, wechat-1, haproxy
haproxy     | Using epoll() as the polling mechanism.
haproxy     | Available polling systems :
haproxy     |       epoll : pref=300,  test result OK
haproxy     |        poll : pref=200,  test result OK
haproxy     |      select : pref=150,  test result FAILED
haproxy     | Total: 3 (2 usable), will use epoll.
haproxy     | 
haproxy     | Available filters :
haproxy     |   [SPOE] spoe
haproxy     |   [CACHE] cache
haproxy     |   [FCGI] fcgi-app
haproxy     |   [TRACE] trace
haproxy     |   [COMP] compression
haproxy     | [NOTICE] 144/204217 (1) : New worker #1 (6) forked

© www.soinside.com 2019 - 2024. All rights reserved.