LiteFlow 开源编排规则引擎

news2024/12/25 9:34:57

        osgi 让 java 系统变成模块化的形式,ASM 是一款修改字节码的框架,同类型的框架 Cglib。这些框架能加载一个 class 信息,Javaagent&Attach API 结合 ASM

        LiteFlow 的理念很简单,就是把系统中的各个逻辑切分成一小块一小块的,称之为组件,这些组件可以由 java 代码来写,也可以用脚本来写。然后一个完整业务就是把各个组件组搭一起,形成一个完整业务链。

        

这种模式的好处就是,不需要热更新的部分可以用 java 组件来写,需要经常变的部分可以用脚本来写。所有的组件均可混搭成为一个业务。如何编排这些组件,LiteFlow 独创了 ELF 语法,拥有非常好上手的编排语法。程序员的话,十分钟就可以上手。上图粉色部分就是最简单的一种串联形式。

业务链路中组件可实时更换,也可实时增加,形成一个新的业务链。同时定义好的组件也可复用在其他的链路中。

LiteFlow 的脚本方案也是利用 JSR223 来实现的,目前已经实现的脚本有三种:

为什么说利用 LiteFlow 编排引擎框架,你的所有逻辑都是可以变更的呢。因为你完全可以把所有的逻辑都用脚本组件来实现,LiteFlow 提供了非常强大的脚本支持,完全和 Java 底层打通,你可以在脚本中 import java 的类,也可以调用 java 的类方法,甚至于可以在脚本中去定义方法,定义类,一切写法和 java 中完全一样。

更夸张的是,LiteFlow 允许你在脚本中调用 spring 上下文的 bean,你可以在脚本中调用 DAO 取数据,可以在脚本中发送 rpc 给其他微服务。只要你愿意,你可以一行 java 业务代码不写,完全把业务搬到脚本组件中去。

而且连逻辑块的顺序你也可以随意变动,因为 LiteFlow 的编排规则和脚本均可实现热变更。

LiteFlow 为经常用的存储中间件也提供了原生支持:

LiteFlow 支持所有的关系型数据库,另外 zk,etcd,nacos 均可支持,还提供了额外的扩展接口,供你自己扩展成其他的存储方式。

有想过么,你所有的逻辑和规则编排语法,都是存在于系统之外的。只要更改其脚本和逻辑,你所有节点的系统不需要做任何事,实时的进行热变更。

而这一切,LiteFlow 做到了非常平滑,所谓平滑的意思是,不用担心在热变更的时候你的业务会受到任何的中断,也不会因为热变更造成正在执行的链路产生任何的异常。

LiteFlow 编排能力有多强大呢,简单的几个关键字就可以编排出超乎想象的效果:

结语

 java 的业务热部署领域,LiteFlow 作为一款规则引擎

项目官网:

https://liteflow.yomahub.com

gitee 托管仓库:

liteFlow: 轻量,快速,稳定,可编排的组件式规则引擎/流程引擎。拥有全新设计的DSL规则表达式。组件复用,同步/异步编排,动态编排,复杂嵌套规则,热部署,平滑刷新规则等等功能,让你加快开发效率!

github 托管仓库:

https://github.com/dromara/liteflow

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

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

相关文章

XCIE-HUAWEI-PBR-MQC-引入形成的路由环路

XCIE-HUAWEI-PBR-MQC-引入形成的路由环路 首先来个测试 给你们选,答案选啥呢? 正确答案在结尾公布 正确答案是C 为什么呢? 首先,虽然ACL有一个齐总是拒绝的,但是呢,他两都是同一条路由 但是呢!&#x…

用于高通量实验筛选的化合物库 | MedChemExpress

Protein-Protein Interaction Library (含 59,370 种化合物) 用于发现新的 PPI 抑制剂 蛋白质相互作用 (PPI)是研究生物反应机制的重要工具。PPI 能产生许多效应,如改变蛋白质对其作用底物的专一性、生成新的结合位点、形成特异底物作用通道等。针对PPI的药物设计为…

Android App开发触摸事件中手势事件Event的分发流程讲解与实战(附源码 简单易懂)

需要源码或运行有问题请点赞关注收藏后评论区留言~~~ 一、手势事件的分发流程 智能手机的一大革命性技术就是把屏幕变为可触摸设备,既可用于信息输入也可以用于信息输出。与手势事件有关的方法主要有以下三个 dispatchTouchEvent 进行事件分发处理 返回结果表示该…

机器学习模型5——贝叶斯分类器

前置知识 条件概率 贝叶斯公式 (贝叶斯模型还是很好理解的,主要基于高中就学到过的条件概率。) 贝叶斯定理 P(A),P(B)分别是事件A,B发生的概率,而P(A|B)是在事件A在事件B发生的前提下发生的概率&#xf…

Burpsuite实验室之点击劫持

Burpsuite实验室之点击劫持 这是BurpSuit官方的实验室靶场,以下将记录个人点击劫持共5个Lab的通关过程 lab1: Basic clickjacking with CSRF token protection 带CSRF令牌保护的基本点击劫持 目标:官方给了一个账号密码wiener:peter&…

小型点阵屏后台监控系统研发

目 录 一、绪论 1 (一)课题的研究意义 1 (二)设计任务及要求 1 (三)单片机的发展史 2 (四)单片机的发展趋势 3 二、系统的整体结构 5 三、单片机介绍 6 1、单片机引脚介绍 9 2、复位…

感受野计算问题

我觉得以下两篇文章,在感受野的含义和计算上,说的是比较好的。 1、深度学习:VGG(Vision Geometrical Group)论文详细讲解_HanZee的博客-CSDN博客 2、关于感受野的总结 - 知乎 我们知道一个图片经过了一个7 * 7卷积…

【论文笔记】TINYCD: A (Not So) Deep Learning Model For Change Detection

论文 标题:TINYCD: A (Not So) Deep Learning Model For Change Detection paper: https://arxiv.org/abs/2207.13159 code: GitHub - AndreaCodegoni/Tiny_model_4_CD: Official implementation of TINYCD: A (NOT SO) DEEP LEARNING MO…

基于聚类算法:K-means、DBSCA算法完成航空客户价值分析任务 代码+数据

1.任务描述 信息时代的来临使得企业营销焦点从产品中心转变成客户中心。具体地,对不同的客户进行分类管理,给予不同类型的客户制定优化的个性化服务方案,采取不同的营销策略。将有限的营销资源集中于高价值的客户,实现企业利润最大化。因此,如何对客户进行合理的分类成为…

喵 ~ 小程序搭建记录

喵 ~ 小程序搭建记录前言一、搭建分析1. 项目里的页面相关2. 项目里的组件相关3. 项目里的 api 相关4. 项目里的没有用到的东西5. 项目中会用到的 iconfont二、 搭建参考参考博客三、 搭建实现1. 结构搭建2.全局样式导航栏配置tabBar配置四、uniapp项目搭建 请求配置前言 喵 ~…

1702967-37-0,PSMA-617 是prostate特异性膜抗原 (PSMA) 的强有效抑制剂

【产品描述】 Vipivotide tetraxetan (PSMA-617) 是prostate特异性膜抗原 (PSMA) 的强有效抑制剂,其 Ki 值为 0.37 nM。Vipivotide tetraxetan (PSMA-617)由三种成分组成:药效基团Glutamate-urea-Lysine,螯合剂DOTA(能够结合68Ga或177Lu&…

智慧住建工程项目监管数字化管理解决方案

在国家“放管服”大背景下,提高各级住房城乡建设主管部门的服务效能和依法治理水平的呼声越来越高。 住建部《“十四五”建筑业发展规划》提出,基于建筑产业互联网平台建设政府监管平台,把“新监管”提到重要位置,打造“工程项目监…

临时回忆啦啦啦啦

设置为private是为了防止其他类使用当前类的日志对象;如果当前类需要被子类继承,并且都使用同一个日志对象时,可设置为protected 。设置为static是为了让每个类中的日志对象只生成一份,日志对象是属于类的,不是属于具体…

MySQL8.0优化 - 索引的数据结构、B+树、常见索引概念、索引的代价

文章目录学习资料索引的数据结构B树常见索引概念聚簇索引特点优点缺点限制二级索引(辅助索引、非聚簇索引)回表联合索引Innodb的B树索引注意事项1、根页面位置万年不动2、内节点中目录项记录的唯一性3、一个页面最少存储2条记录索引的代价学习资料 【My…

计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序

项目介绍 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的…

mMED影响组蛋白甲基化和表观遗传

2019 年 8 月 8 日,来自美国 NIH 的 Rafael Casellas 与科罗拉多大学 Francisco J. Asturias 在 Cell 杂志上发表文章 《A Pliable Mediator Acts as a Functional Rather Than an ArchitecturalBridge between Promoters and Enhancers》,综合运用 CRIS…

Landsat Collection 2 数据集详细介绍(T1/T2产品差异)

Landsat Collection 2 是对 Landsat 档案的第二次主要再处理工作,它带来了多项数据产品改进,这些改进应用了数据处理、算法开发以及数据访问和分发功能方面的进步。 Landsat Collection 2 包含来自 Landsat 1-9 的 Level-1 数据和来自 Landsat 4-9 的科…

Spring IOC源码:invokeBeanFactoryPostProcessors 后置处理器详解

前言 前面篇幅介绍了Bean配置的解析过程,包括注解、xml配置文件的解析。下面进入refresh方法中另一个重要的节点,即BeanFactoryPostProcessor的注册及其执行过程。 正文 进入refresh,前面篇幅已经介绍了obtainFreshBeanFactory()&#xff…

说出你常用的20个linux命令,你还是只会说ls、cat那20个命令吗?3分钟让你发现新大陆

服务器排障常用命令 🍊 博客主页:作者主页 🍊 简介:云计算领域优质创作者🏆、在校期间参与众多计算机ICT相关的省赛、国赛,斩获系列荣誉。考取华为资深工程师、红帽工程师、阿里云ACP云计算工程等系列认证。…

java图书推荐协同过滤算法网站

目 录 摘 要 2 Abstract 3 1绪论 6 1.1背景和意义 6 1.2国内外发展现状 6 2系统技术分析 7 2.1技术选型 7 2.2 MVC模式 7 3功能分析 8 3.1系统角色 8 3.2系统用例图 8 3.3系统功能 8 3.3.1网站前台功能 8 3.3.2网站后台功能 13 4系…