天天看點

kuiper規則數上限測試的突發問題

背景

kuiper的官網中有提到:kuiper支援8000條規則下的資料路由處理,于是我便嘗試搭建該測試環境試試。

kuiper規則數上限測試的突發問題

測試方法

kuiper規則數上限測試的突發問題

如圖,我搭建了一個虛機來跑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

微信公衆号:測試生财(定期分享獨家内容和資源)

kuiper規則數上限測試的突發問題