美文网首页分布式
基于Drools数据转发场景测试

基于Drools数据转发场景测试

作者: 淡淡的小番茄 | 来源:发表于2021-07-15 16:42 被阅读0次

    环境信息

    操作系统:CentOS Linux release 7.4.1708 (Core)

    机器配置:8c 16g

    规则信息

    写了个简单个规则DRL文件,此规则对应我们业务场景的数据转发流程,非常有代表性。就是对数据进行账户、产品key、是否属于某个标签的过滤,脚本如下:

    package drools.example;

    import org.drools.example.api.namedkiesession.Message;

    function int hasProductLabels(String deviceLabels,String labels){

      return deviceLabels.indexOf(labels)==-1?0:1;

    }

    rule "g1_mytest"

    when

    $msg : Message(orgId =='11111' && productKey=='cu3im1kts3rz8dSc')

    && eval(hasProductLabels('101,102,103',$msg.getProductLabels())>0)

    then

    end

    rule "g1_mytest1"

    when

    $msg : Message(orgId =='11111' && productKey=='cu3im1kts3rz8dSc')

    && eval(hasProductLabels('101,102,103',$msg.getProductLabels())>0)

    then

    end

    ...

    场景一 数据转发,1000规则,匹配100万次。

    java -Dcom.sun.management.jmxremote.port=20217 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.30.xxx.yyy -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -jar drools-test.jar getForwardRules 10 1000000

    通过jvisualvm.exe来监控相关资源使用情况:

    场景二 数据转发,2000规则,匹配100万次。

    场景三 数据转发,5000规则,匹配10万次。

    场景四数据转发,10000规则,匹配10万次。

    1万规则512M内存已经不够用,需要配置为1G。

    java -Dcom.sun.management.jmxremote.port=20217 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=172.30.127.85 -Xms512m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=. -jar drools-test.jar getForwardRules 100 100000

    结论

    相关文章

      网友评论

        本文标题:基于Drools数据转发场景测试

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