liteflow开源编排规则引擎(代码片段)

ejinxian ejinxian     2022-12-08     719

关键词:

        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

业余草开源规则流引擎实践(代码片段)

在很多企业的IT业务系统中,经常会有大量的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。为了适应这样的需求,我们的IT业务系统应该能快速且低成本的更新。适应这样的需求,一般的作... 查看详情

开源微服务编排框架:netflixconductor(代码片段)

...主要运行机制。一简介netflixconductor是基于JAVA语言编写的开源流程引擎,用于架构基于微服务的流程。它具备如下特性:允许创建复杂的业务流程,流程中每个独立的任务都是由一个微服务所实现。基于JSONDSL创建工作... 查看详情

开源规则引擎——ice:致力于解决灵活繁复的硬编码问题(代码片段)

...发现还是不如硬编码?接下来给大家介绍一款全新的开源规则引擎——ice,以一个简单的例子&# 查看详情

.netrulesengine规则引擎使用(代码片段)

...务规则引擎有Drools、VisualRules和iLog。这里介绍另外一个C#开源工具RulesEngine 查看详情

googleaviator——轻量级java表达式引擎实战(代码片段)

表达式引擎技术及比较Drools简介Drools(JBossRules)是一个开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。除了应用... 查看详情

开源业务规则引擎jbossdrools

Drools是什么?规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决... 查看详情

dockercompose编排工具(代码片段)

DockerCompose介绍Compose项⽬是Docker官⽅的开源项⽬,负责实现对Docker容器集群的快速编排。从功能上看,跟OpenStack中的Heat十分类似。其代码⽬前在https://github.com/docker/compose上开源Compose定位是(定义和运⾏多个Docker容器的应⽤... 查看详情

java开源的规则引擎drools电商行业实战(含完整代码)(代码片段)

前言我所在项目组刚好接到一个领取优惠券需求,具体需求是用户领取的各种类型的优惠券(比如:代金券、折扣券)数量不能超过某个自定义数量,因考虑到领取限制数量是动态的,另外考虑到扩展性&#x... 查看详情

容器编排工具鉴赏-docker-composekubernetesopenshiftdockerswarm(代码片段)

...务编排工具什么是任务编排​docker毫无疑问是一个优秀的开源工具。但是,仅靠docker引擎和容器就不能进行复杂的应用程序部署。对于部署复杂的应用程序体系结构的容器群集,必须进行适当的配置。容器化的应用程序应该能够... 查看详情

pcb规则引擎之编辑器(语法着色,错误提示,代码格式化)(代码片段)

...功能.(目前技术无法做到JS加断点;边调试边运行)经过众多开源产品的代码编辑器对比与功能测试,ICSharpCode.TextEditor是JS脚本编辑 查看详情

一个netflix开发的微服务编排引擎,支持可视化工作流定义(代码片段)

一个Netflix开发的微服务编排引擎,支持可视化工作流定义导读:相对于传统架构,微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备功能。NetflixConductor作为服务编排... 查看详情

规则引擎clara-rules(代码片段)

...ff0c;主要内容包括规则引擎的实现算法rete算法,clojure开源的规则引擎clara-rules对规则的处理方式和特点,以及clojureedn文件格式处理等内容。(在一段时间的思考之后,发现本文还是越写越乱,最后还是决定采... 查看详情

drools开源规则引擎比较难上手,有没有一款容易上手的规则引擎?

参考技术ADrools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。本文所使用的demo已上传htt... 查看详情

旗正商业规则引擎和开源及其它规则引擎测试对比

...为再此之前,国内所用的规则引擎,都是国外产品,或者开源产品,纯自主研发旗正是第一款, 查看详情

具有良好接口的开源规则引擎,用于编写规则

】具有良好接口的开源规则引擎,用于编写规则【英文标题】:Opensourcerulesenginewithdecentinterfaceforwritingrules【发布时间】:2010-09-0612:16:54【问题描述】:我正在尝试找到一个开源业务规则引擎,该引擎具有用于构建规则的良好界... 查看详情

规则引擎的应用

java开源的规则引擎有:Drools、EasyRules、Mandarax、IBMILOG。使用最为广泛并且开源的是Drools。     规则引擎的优点声明式编程规则可以很容易地解决困难的问题,并得到解决方案的验证。与代码不同,规则以较不复杂的语... 查看详情

drools规则引擎一文读懂(代码片段)

目录一、Drools简介电商平台的促销活动规则引擎Drools简介二、Drools快速入门 电商平台促销积分规则开发实现三、Drools规则引擎构成及其核心类Drools规则引擎构成Drools规则引擎概念四、Drools基础语法规则文件构成 规则体语法结... 查看详情

flink规则引擎实践分享(代码片段)

Flink规则引擎实践分享文章目录Flink规则引擎实践分享一、实时规则引擎架构***二、规则抽象模型三、规则、条件查询封装**3.1规则封装3.2查询规则封装四、基于ClickHouse实现用户行为明细查询服务支持4.1ClickHouse从Kafka摄取数据4.2Cl... 查看详情