关于EMQX终结ssl对于性能的影响以及是否需要外部LB


在官方的文档上,推荐的架构是客户端的SSL链接到LB,在LB终结SSL,LB与EMQX服务器之间为TCP连接。我比较想了解下SSL对于EMQX的性能有多少影响?有没有官方测试的数据?
我自己本地测试了下,EMQX 版本 5.0.26,安装方式,压缩包解压后运行,操作系统 Ubuntu22.04,测试客户端 emqtt_bench。记录的数据见:EMQX性能测试,NGINX和HAProxy终结SSL对比 | Yibin’s Blog


实际验证下来,我看终结SSL并没有明显降低EMQX的一个负载情况。

并且在官方的案例中,为啥又是先通过ELB,在加一层自建LB去终结SSL?

建议终结 TLS:

  • EMQX 的 SSL 依赖 Erlang/OTP 中的 ssl 模块,但与成熟的 HaProxy、NGINX 等相比,Erlang/OTP 对于 ssl 的支持仍然不是特别完善,视 OTP 版本和 SSL 版本不同,可能会出现一些不常见的小问题。
  • OTP 的 SSL 实现会使用更多的内存。你自己测试的时候,额外关注一下内存的差别。