高性能,易用的规则引擎

规则引擎很多人都听过,实现方案有很多:

1、用开源的方案  drools 基于 RETE 决策算法

2、基于groovy java 动态语言

3、自研的规则引擎

在我们选型过程,发现drools性能并不是很好,于是决定自研

思路通过 javaassist把java代码规则生成一个方法,支持本地规则和远程规则

测了下性能还算不错,比drools高一个数量级,性能还算不错, 简单贴下使用方法

UserFact userFact =new UserFact();

userFact.setAge(32);

userFact.setDevice("iphone x");

userFact.setOs("mac");

userFact.setRegion("杭州");

userFact.setSex("男");


RuleEngine ruleEngine = RuleEngine.getInstance("abtest",new LoadRuleFromClassPath());

AbAction abAction = ruleEngine.execute(userFact);

assertNotNull(abAction);

你可能感兴趣的:(高性能,易用的规则引擎)