前言
关于EMQ的使用效率问题
EMQ是一款消息服务器用来做mqtt消息传输,有两个版本一个Broker版本,一个企业版本,我这里说的免费版本Broker版本
一、EMQ压力测试
最开始我使用apache-jmeter-5.3多线程去测试,EMQ服务器是腾讯云的1G2核2M的宽带连接数不到2000(这里是接受和发送消息)。然后开始优化,我一开始想是不是要多台集群会好一点,压力测试过的应该都会有这个想法,可惜集群是能改善但是并不能解决问题。
网上很多用nginx或者haproxy和keepalived做负载均衡高可用EMQ集群,可能之前没有使用过就陷入进去了。配完了才发现问题还是没有解决,只是说起来很好听,什么负载均衡高可用实质问题没有解决。结果是发送消息接收的数据量一样的没有改变多少。
二、测试结果
1.虚拟机测试
为了专门去测试是不是官方说的1G内存6W连接数,我使用了centos7系统去做了测试,结果:
1G2核2.7W最大连接数,50ms添加一个用户5s发送一次数据1.1W的连接数
(卡顿的发送了100W条数据)
2G4核最大连接数8.5W,50ms添加一个用户5s发送一次数据2.6W的连接数
(发送了140W条数据)
4G6核最大连接数10W(电脑配置原因只达到了10W),50ms添加一个用户5s发送一次数据2.8W的连接数
(发送了150W条数据)
这里就有个问题,最大连接数因为配置原因10W连接数基本应该可以商用了。数据发送和接受就有点问题了。数据明显的受宽带影响,在数据调优的情况下2M的网只能跑4000不到的连接数,发送数据的情况下。有人给我说就这还没有广播,是真的没有想象中的好。不过这里EMQ的插件还是很好用的。
总结
这几天一直都在弄EMQ,我不知道企业版怎么样,不过Broker版本当数据量大了之后网速跟不上这个问题我觉得还是比较严重的,适用性并没有那么高。
最后说一下最大连接数有什么用。你数据的发送接收有问题100W的连接数有用吗?这就是百万连接让人有点失望。