揭秘规则引擎:如何实现多版本无感切换与数据源同步

在现代业务系统中,规则决策引擎能够自动化处理复杂的业务逻辑。为了满足不断变化的业务需求,同时确保系统运行的连续性和稳定性,在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python3】【力扣题】409. 最长回文串

【力扣题】题目描述: (题意理解)统计如下: ① 字母个数本身是偶数。 ② 字母个数是奇数,统计奇数中的偶数部分,例如:字母个数为3,统计其中的2。 ③ 中间可以有一个奇数字母。即只要有…

Scala的属性访问权限(一)默认访问权限

//eg:银行账户存钱取钱 // 账户类: // -balance() 余额 // -deposit() 存钱 // -withdraw() 取钱 // -transfer(to:账户,amount:Dobule)转账 package Test1104 //银行账户class BankAccount(private var balance:Int){def showMoney():Unit {println(s"…

作为一个前端开发者 以什么步骤学习后端技术

作为一个前端开发者,学习后端技术可以按照以下步骤进行: 明确学习目标 确定方向:明确自己想学习的后端技术栈(如Node.js、Python、Java等)。 设定目标:短期目标(如完成一个简单的后端项目&…

mit6824-06-Raft学习记录01

文章目录 必要知识单点故障脑裂多数原则 近日开始学习分布式共识算法Raft,慢慢记录一些自己能看懂的东西。 优质博客: Raft原理详解 必要知识 单点故障 单点故障(single point of failure):服务器中某台机器出现故…

010 Editor下载安装和使用

010 Editor下载安装和使用 010 Editor(也称为 SweetScape 010 Editor)是一款功能强大的二进制文件编辑器和文本编辑器。它主要用于查看、编辑和分析各种二进制文件和文本文件,特别适用于处理数据恢复、磁盘编辑、编程和系统管理等领域。 1 …

每日一练 | DHCP Relay(DHCP 中继)

01 真题题目 DHCP Relay 又称为 DHCP 中继,下列关于 DHCP Relay 的说法正确的是(多选): A. DHCP 协议多采用广播报文,如果出现多个子网则无法穿越,所以需要 DHCP Relay 设备。 B. DHCP Relay 一定是一台交…

【安装教程】统信UOS1070上使用vsftpd服务上传下载文件

原文链接:【安装教程】统信UOS1070上使用vsftpd服务上传下载文件 Hello,大家好啊!今天带来一篇关于在统信UOS 1070上使用vsftpd服务实现加密文件上传和下载的文章。默认的FTP传输是不加密的,但在数据传输时,安全性尤为…

Linux之实战命令70:chcon应用实例(一百零四)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

99.9%高质量Tick数据复盘回测ea必备工具:Tick Data Suite 使用教程

Tick Data Suite 是一款高质量的99.9% Tick 数据回测工具,功能强大,适用于进行EA回测。它具有以下主要优势:Tick 数据占用硬盘空间较小,可模拟滑点和实盘延时,还能设置持仓过夜费和交易手续费。Tick 数据来源多样&…

算法练习:1004. 最大连续1的个数 III

题目链接:1004. 最大连续1的个数 III。 题目要求,给定一个数组,这个数组里面只有0或1,然后计算有多少个连续的1的最大长度,同时给了一个条件就是,可以把k个0变成1,然后来计算长度。 暴力解法&a…

Unity网络开发基础(part5.网络协议)

目录 前言 网络协议概述 OSI模型 OSI模型的规则 第一部分 物理层 数据链路层 网络层 传输层 第二部分 ​编辑 应用层 表示层 会话层 每层的职能 TCP/IP协议 TCP/IP协议的规则 TCP/IP协议每层的职能 TCP/IP协议中的重要协议 TCP协议 三次握手 四次挥手 U…

SQL,力扣题目1767,寻找没有被执行的任务对【递归】

一、力扣链接 LeetCode_1767 二、题目描述 表:Tasks ------------------------- | Column Name | Type | ------------------------- | task_id | int | | subtasks_count | int | ------------------------- task_id 具有唯一值的列。 ta…

JavasScript 的对象事件的处理程序

1、鼠标事件 常用的鼠标事件有MouseDown、MouseUp、MouseMove、MouseOver、MouseOut、Click、Blur及Focus等事件。 mousedown:按下鼠标键时触发 mouseup:抬起鼠标键时触发 click:单击鼠标时触发 dblclick:在同一个元素上双击鼠标…

华为云安装docker

docker_docker-compose_install: 代替官网的一键安装脚本&#xff0c;使用docker包进行离线安装 bash <(curl -sL https://raw.githubusercontent.com/1scripts/docker_docker-compose_install/main/quick_install.sh) 华为镜像&#xff1a; https://console.huaweicloud.…

如何实用穿山甲APP搭建你的广告联盟?

在当下蓬勃兴盛的移动互联网范畴&#xff0c;广告联盟穿山甲无疑堪称一个具备深远影响力的关键平台。它系由在科技领域声名远扬的字节跳动悉心打造并予以推出&#xff0c;其创建的初衷便是矢志为众多的开发者和广告主精心构筑一个高效能、精准化且极具价值的广告投放与变现服务…

【Python实战案例】爬虫项目实例(附赠源码)

文章目录 声明安装必要的库项目结构技术细节小结 声明 请您遵守网站的robots文件规定&#xff0c;本文目的只是做学习交流使用&#xff0c;包括多个模块&#xff0c;例如数据存储、日志记录、错误处理、多线程或异步请求 安装必要的库 pip install requests beautifulsoup4 sq…

PL/SQL developer debug 方法及存储过程等

文章目录 打开 PL/SQL&#xff0c;找到 fun右键 fun&#xff0c;选择【添加调试信息(U)】右键 fun&#xff0c;选择【查看(O)】在 fun 中需要调试的位置打上断点右键 fun&#xff0c;选择【测试(X)】点击执行再点击执行进入断点 执行结果 打开 PL/SQL&#xff0c;找到 fun 右键…

[python] 如何debug python脚本中C++后端的core dump

文章目录 Debug过程Reference Debug过程 另外&#xff1a;对于core dump: gdb版本是>7&#xff0c;gdb从版本7开始支持对Python的debug。确保你的系统中安装了 GDB 调试器和对应版本的 Python 调试信息包&#xff08;例如 python-dbg 或 python-debuginfo&#xff09;。 #…

51单片机 定时器详解

51单片机定时器详解 在 51 单片机中&#xff0c;定时器/计数器&#xff08;Timer/Counter&#xff09;是一个非常重要的功能模块&#xff0c;用于处理定时、计数和事件触发等任务。定时器可以在应用程序中产生周期性中断&#xff0c;常用于精确的时间延迟、事件计数等场合。本…

利用 Avalonia UI 构建 Blazor 混合应用程序

Blazor 是一个 .NET 前端框架&#xff0c;用于仅使用 .NET 技术构建 Web 应用程序。2021 年&#xff0c;Blazor 扩展到桌面端&#xff0c;推出了 Blazor Hybrid&#xff08;混合&#xff09;&#xff0c;使开发者可以在桌面平台上使用已有的技能。 Blazor 混合应用程序是传统的…