EMQX nginx+集群 服务器配置推荐

环境信息

  • EMQX 版本:4.4.5
  • 操作系统及版本:centos

问题描述


EMQX官网文档中提到 EMQX 自 4.2 版本以来,在一台 8 核心、32G 内存的 CentOS 服务器上,MQTT 连接压力测试可达到 130 万。

想问下我准备用3台服务器(服务器1、服务器2和服务器3)
1.服务器1:安装Nginx用于做前置服务器,实现负载均衡,将请求分发到服务器2和服务器3的EMQX
2.服务器2:安装EMQX,服务器2和服务器3为EMQX集群关系
3.服务器3:安装EMQX,服务器2和服务器3为EMQX集群关系

想请教下这3台服务器应购买怎么样的配置,可以做到百万的连接?

  1. 建议后面放奇数台 emqx,例如:3/5/7 但不要过多。
    • 奇数,为了避免脑裂成 2 个集群时,难以治愈的问题。
    • 节点数不易过多,为了降低 4.x 下集群节点数过多,带来的事务操作的性能下降
  2. 这里的 100w链接 仅表示无业务负担的情况下(例如,未开启数据转发,认证等功能)能达到 100w连接+1w 的消息吞吐。具体还得自己要去压测的,简单来说
    • 连接数和内存相关
    • 消息TPS 和 数据转发,认证能 和 CPU 相关

image
问题1:以上的配置结构,想请教下是否服务器1的内存配置等是不是相比于另外两台服务器多很多?


问题2:如果假设服务器2和服务器3不为集群关系,以上的配置结构在正常使用中是否没什么影响,只是在同一台DashBorad上不能看见两个节点及同时看见两个服务器的连接数情况,只能在两台各自的DashBorad上查看各自的连接使用情况?

  • 问题1:不需要。 Nginx 只做4层转发资源消耗不高的

  • 问题2:建议集群的,不然两台是隔离的,无法相互 pub/sub 也需要使用两个dashboard