在现代业务系统中,规则决策引擎能够自动化处理复杂的业务逻辑。为了满足不断变化的业务需求,同时确保系统运行的连续性和稳定性,在JVS规则引擎中提供了多版本无感发布和数据源变更日志同步功能。
多版本无感发布
多版本无感发布主要适用于已经在设计好的规则决策并且已启用的前提下,这时想要变换一下里面的部分规则。但正在运行中,停止会影响业务正常调取数据。这时就需要在已启用的前提下进行版本更改,更改后进行无感发布。
具体操作如下:
在已建好并启用的决策流前提下,我们点击设计按钮进入决策流设计器,如下图所示:
系统进入决策流设计界面,可以看到目前系统处于进行中也就是启用中的状态。也就意味着外界可正常进行数据调用该决策流。同时也可看到对应版本号为v1版,也就是最初版本。
这时我们可以对该决策流进行修改操作,比如我现在新增了一个赋值节点来作为演示。意在假装在实际运行中需要修改决策的场景。
配置好新节点或规则后,我们点击保存按钮。点击后会出现一个确认生成新版本的提示,点击确认即可新生成一个v2版本,v2版本生成后是未启用的,还是启用的v1版本。除非点击发布,点击后即可进行切换。
点击版本可查看已有的各个版本,点击使用即可切换到想要的版本。此处v1即是最开始的没有赋值节点的版本,v2为保存后刚刚配置了赋值节点的版本。由于未发布v2,所以当前运行中的还是v1版本。
当我们选择发布v2版本,即可看到当前v2版本处于运行中了。即无需停止该决策即可无感发布新版本,让系统不用停止进行切换规则条件。
执行时数据源变更的日志提醒和同步
很多时候新版本发布使用前会进行一个数据源同步校验,因为可能新版本需要变更原本的库表结构或入参值。当数据源有变化时,也需拿到最新的数据源库表内容以达到数据结构保持一致的效果。以下为具体示例:
现在v2版本执行时的入参为数据源那边配置查询条件传入过来的参数,目前有两个字段如下所示。
我们现在去数据源处找到该数据源连接,然后去掉一个入参来演示数据发生变化时的场景。
删除条件后,我们进入刚刚决策流设计。重新点击执行即可看到会有数据源的同步校验,如果数据源结构发生变化即会给出提示。
数据源同步完成后,重新点击执行即可拿到最新的数据。
在线demo:http://rules.bctools.cn
gitee:https://gitee.com/software-minister/jvs-rules