前言
周末被一个朋友刺激到,已是老板还在不断学习前行,加上家里小家伙对学习态度超越了自己,感觉自己有点堕落,故加速完成该课题。随着很多外网的影响,可能再次调整大家对技术的认知,技术下沉速度和我公众号每天衍生文章的速度一样,来不及看就已经下沉,快速的下沉就意味着一点点落后,学习应用转换,形成循环,不断前行。
2020年就要过去了,又到回顾时刻,是否都达到自己的预期,是否能够支撑来年的前行?
正文
目前市面上在用的规则引擎包含drools、Camel、Ilog、aviator等,在应用领域的特点也不一,相关的细节没有具体去分析。参考文章https://zhuanlan.zhihu.com/p/156034248,考虑到规则引擎的动态性,独立构建模块oup-rule与oup-service同级别,支持分布式接入处理。为实现规则动态刷新、页面可视化配置、规则动态加载等属性,
在oup中规则引擎以无状态服务为目标,最终集成到oup方案中,整体集成方案如下:
依托drools的通用性,以快速集成为目标,遵循oup大方案的场景可扩、高复用、无状态、可扩展、高性能等设计特性,形成该方案,可满足日常使用。后续将以组件化的形式来进行每个点的升级。
集成步骤:
1、引入drools的相关库
2、依托fast-drools-spring-boot-starter,考虑其本地化存储以及与db结合的局限性,采用其部分源代码进行扩展。
3、完成规则及规则集表设计。
4、动态刷新规则到redis,实现规则文件、规则内容模板合并机制,形成线上线下的规则维护方式,开放配置及模板,支持热加载。
5、构建对外通用服务及监听,完善服务和监控运营内容。
6、优化drl规则内容,引入全局、微服务,支持drl直接对接微服务,并以微服务输出,形成可视化配置。
日常使用;
1、构建规则引擎维护表单,支持在线上传规则文件、下载规则文件。
2、微服务化调用,可指定规则或者规则集,不依赖特点对象,全部为通用对象。
3、监控匹配过程,输出相应的执行报告。
扩展:
1、对接规划引擎
2、规则配置可视化。