背景

kuiper的官网中有提到:kuiper支持8000条规则下的数据路由处理,于是我便尝试搭建该测试环境试试。

测试方法


如图,我搭建了一个虚机来跑Kuiper,Kuiper会订阅Emqx Broker的Topic,这时候我用一个MQTT客户端(比如MQTTBox或者Jmeter)向Emqx Broker特定topic发送消息。Kuiper中的规则引擎就会对订阅到的每条消息进行过滤处理(即类似执行sql),并输出到Kuiper的日志中。

突发问题

使用前文提到的环境,在kuiper上创建了8000条规则,然后重启一下kuiper机器。

docker restart kuiper

1)查看kuiper的日志:

如果在kuiper容器内部:tail -f log/stream.log

如果是在宿主机上:docker logs -f kuiper

可以看到日志报错说连EMQX Broker的1883端口超时了,这里每个规则都会向EMQX Broker订阅一个topic(图中有提到subscribe to topic)。

这里就有些奇怪了,EMQX号称能撑近百万连接,为啥不到6000多链接数就扛不住了呢,是不是有bug?

2)查看emqx日志

tailf -f /var/log/emqx/emqx.log.1

可以看到这里EMQX报错了,说文件描述符超限了。

3)修改文件描述符

执行:vi /etc/sysctl.conf,写入如下内容:

fs.file-max = 12553500

fs.nr_open = 12453500

输入:x保存退出,然后执行sysctl -p使之生效

4)重启emqx

sudo systemctl restart emqx

5)再次查看kuiper日志

通过:curl http://localhost:9081/rules,可以看到8000条规则创建成功,真相大白,果然不是EMQX的锅。

快送门:各种学习资料与大厂招聘

快送门:各种学习资料与大厂招聘

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)