表达式计算引擎-JEP

本文介绍了在服务器监控中间件中重新引入表达式计算功能的过程。原本使用自研的基于栈的计算方法,后因性能问题改用Java的JS引擎,但内存占用过大。在寻找开源引擎时,选定了JEP,因为它在效率和内存占用方面表现较好。JEP支持数学运算,但这里只使用了逻辑运算部分。文章展示了如何构造Jep、解析表达式、赋值和计算,强调了可以重复赋值而无需多次解析表达式的特性。
摘要由CSDN通过智能技术生成

最近调整了原先的一个中间件的功能,把之前被产品去掉的规则表达式计算又重新添了回去.

这个中间件的基本功能是使用预定义的关键字和数值比对进行判断,从大量的数据中生成告警,主要是用于服务器监控.

这里的表达式计算仅使用了与逻辑相关的一些运算符.

原本是自己写了一个基于stack的表达式计算,后来被产品去掉了这个功能,说是用不到这种…然而这次的需求需要进行复杂的多规则计算,因此需要在现有的基础上重新添加回表达式计算功能.

为以后扩展起见,原本是使用java自带的js引擎进行计算,然而在实现了之后,自测性能时发现内存占用率过高.

后续找了一下开源的表达式计算引擎,话说网上能找到的计算引擎介绍全部都是一样的…后面试了几个,最终选择了JEP,效率和内存占用都比较符合要求.

介绍一下简单的使用

由于JEP在maven上有很多实现,试过了几个后选择了

<dependency>
    <groupId>com.singularsys</groupId>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值