規(guī)則引擎很多人都聽過晦嵌,實現(xiàn)方案有很多:
1、用開源的方案? drools 基于 RETE 決策算法
2拷姿、基于groovy java 動態(tài)語言
3惭载、自研的規(guī)則引擎
在我們選型過程,發(fā)現(xiàn)drools性能并不是很好响巢,于是決定自研
思路通過 javaassist把java代碼規(guī)則生成一個方法描滔,支持本地規(guī)則和遠程規(guī)則
測了下性能還算不錯,比drools高一個數(shù)量級踪古,性能還算不錯, 簡單貼下使用方法
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);