美文网首页
边缘侧eKuiper规则引擎调研

边缘侧eKuiper规则引擎调研

作者: 淡淡的小番茄 | 来源:发表于2021-10-20 08:38 被阅读0次

    背景

            国内物联网行业用的比较多的接入平台非EMQ莫属了,其提供了整套的行业解决方案,包括:边缘侧的设备接入及边缘侧规则引擎eKuiper。由于前期对于边缘轻量级规则引擎我们也做了相应的技术选型,比较偏向于Drools。也对Drools进行了相关的性能测试,比较符合我们的业务场景。这次正好与EMQ厂商有比较深入的交流,也想对比下两者的性能。我们主要对数据转发场景进行了对比。业务上很简单,就是对设备上报数据,进行简单的过滤然后发送给第三方应用。比如:温度的阈值判断、标签的过滤等。     

    环境准备

    8c 16g普通虚拟机。使用eKuiper比较简单,直接定义数据流(source),然后定义处理转发逻辑SQL,最后定义输出(sink)。按照官方文档安装好eKuiper和EMQ。

    定义数据流(source)

    ./bin/kuiper create stream rawdata '(orgId string, orgKey string, productKey string, productLabels string, deviceKey string, deviceLabels string, requestTime string, requestIp string) WITH (FORMAT="JSON", DATASOURCE="rawdata",SHARED="true",TIMESTAMP="ts" )'


    定义转发逻辑SQL

    bin/kuiper create rule dataForward -f /data/rules/fr-124.txt

    fr-124.txt的内容如下

    {

    "sql": "SELECT orgId,orgKey,productKey,deviceKey,requestTime,requestIp,productLabels,deviceLabels from rawdata where orgId =\"124\" and indexof(productLabels,\"103\")!=-1",

    "actions": [{

          "nop": {}

        }]

    }

    测试的场景

    1000规则,1000匹配。数据流转:emq--->eKuiper。以600tps向tmq发送数据,机器的CPU彪升到60%以上,且居高不下。结合官方的测试结果也可以看出,eKuiper确实是比较消耗CPU的。另外,规则引擎的吞吐量计算是结合触发的规则数来计算的。

    比如:发送消息600TPS,1000规则完全都匹配上,对于规则引擎来说qps为:600*1000=60k。

    相关文章

      网友评论

          本文标题:边缘侧eKuiper规则引擎调研

          本文链接:https://www.haomeiwen.com/subject/spzzoltx.html