使用haproxy 做负载均衡增加 send-proxy,并且打开代理协议,压测报错

EMQX 版本

EMQX 5.8.1

EMQX 安装部署方式

ubuntu 22.04,按官网教程

EMQX 集群情况

5 个节点组成集群

服务器(运行 EMQX 的机器)硬件配置

16核 32GB

服务器操作系统和平台

Ubuntu 22.04, amd64

服务端参数优化情况

官网推荐的优化参数

压力机硬件配置

16核 32GB

压力机使用的测试工具

eMQTT-Bench

压力机参数优化情况

在 EMQX 中启用的功能

监听器启用了代理协议

测试场景

测试5万连接数

具体问题

开启send-proxy,并且在管理页面监听器里打开代理协议,在第一张图的位置卡住,过一会报错,不获取真实IP不会报错。

是的, emqtt-bench 并不支持 proxy 模式。而且用 proxy 模式前面是要有 nginx 负载均衡的。好像你的安装步骤里面也没有。

我使用haproxy做的负载,按照官网配置里加的,能够获取到真实IP, 就是压测的时候报错,你的意思是单独用nginx去做,还是两者一起?

抱歉,我理解错了,我原来以为你是想通过emqtt-bench 不经过负载均衡发 proxy 的包。
只要有负载均衡就可以,hayproxy 和 nginx 都是一样的效果,如果能得到真实 IP,那就是配置没问题了。


里面显示的 connack_timeout 说明是连接速率太快了,你调慢一点试试。
先设置一个小的连接速率,慢慢加调到一个他能承受的速率。