python - 用于 haproxy 的 Iperf udp 流量

标签 python docker haproxy iperf

我的个人项目是使用 Docker 容器对 Haproxy 进行“性能评估”。我正在使用 Python 编程并使用 iperf 生成流量。

我创建了几个 Docker 容器作为客户端和服务器。客户端应该通过充当负载均衡器的 Haproxy 容器将 udp 流量发送到服务器。

问题是当我尝试将 udp 流量从客户端发送到服务器时,Haproxy 拒绝连接。 我没有在官方文档中找到如何绑定(bind)或监听UDP端口。

预先感谢您的回复。

这是我的 haproxy.cfg 的副本。

全局 安静的 nbproc 4 守护进程 听 tcp_haproxy 172.17.4.230:5001 平衡循环法 服务器 server0 172.17.4.227:5001 服务器 server1 172.17.4.228:5001 服务器 server2 172.17.4.229:5001

最佳答案

正如我所读,这个问题更多的是关于 UDP 负载平衡而不是 Docker。如果我误解了问题,请随时纠正我。

你可能不会喜欢这个答案,但这里是。 HAProxy 不支持 UDPofficial homepage将 HAProxy 明确描述为 TCP 和 HTTP 代理(暗示,这意味着“无 UDP”)。还有this question on ServerFault关于UDP负载均衡的话题,里面也讨论了HAProxy,很快就解散了。

因为我自己不喜欢“那不可能,处理它”作为答案,让我们看看替代方案。

  1. 一些询问有关 UDP 负载平衡的资源最终推荐 IPVS作为负载均衡器。它是 Linux 内核的一部分,如果您正在寻找基于 Docker 的东西,那么它是一个糟糕的解决方案。如果这对你来说不是一个交易破坏者,那么有一个 short example on the Wikipedia page可以使用三个 UDP 服务器根据您的情况进行调整:

    ipvsadm -A -u 172.17.4.230:5001 -s rr
    ipvsadm -a -u 172.17.4.230:5001 -r 172.17.4.227:5001 -m
    ipvsadm -a -u 172.17.4.230:5001 -r 172.17.4.228:5001 -m
    ipvsadm -a -u 172.17.4.230:5001 -r 172.17.4.229:5001 -m
    
  2. 通过 Google 快速搜索可以找到替代的开源解决方案,例如 Pen .可能也值得一看?

  3. 确定不能改用 TCP 吗? ;)

关于python - 用于 haproxy 的 Iperf udp 流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255780/

相关文章:

python - 以 Python 方式使用列表对 numpy 数组进行索引

python - Xpath在scrapy 0.24.5中选择两个节点之间的节点

docker-compose volumes_from 使用示例

Docker + Kubernetes 构建

python - 实时拦截子进程输出的问题

python - 在 Python 中给事件线程一个唯一的编号

ssl - docker swarm 模式是否默认提供网络安全/加密?

mysql - MySQL 主从复制的 HAProxy

python - Docker-Compose HAProxy缺少前端

security - TLS 证书是否需要一个通用的 SAN