(一)LiteFlow简介

1. 简介

LiteFlow 是一个轻量,快速的组件式流程引擎框架 / 规则引擎,组件编排,组件复用,帮助解耦业务代码,让每一个业务片段都是一个优雅的组件,并支持热加载规则配置,实现即时修改。

使用LiteFlow,你需要去把复杂的业务逻辑按代码片段拆分成一个个小组件,并定义一个规则流程配置。这样,所有的组件,就能按照你的规则配置去进行复杂的流转。

LiteFlow是一个非常强大的现代化的规则引擎框架,融合了编排特性和规则引擎的所有特性。

LiteFlow官方网站和代码仓库地址:
官方网站:https://liteflow.cc/
Gitee托管仓库:https://gitee.com/dromara/liteFlow
Github托管仓库:https://github.com/dromara/liteflow

2. 优势

如果你要对复杂业务逻辑进行新写或者重构,用LiteFlow最合适不过。它是一个编排式的规则引擎框架,组件编排,帮助解耦业务代码,让每一个业务片段都是一个组件。

利用LiteFlow,你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。LiteFlow拥有开源规则引擎最为简单的DSL语法。十分钟就可上手。
在这里插入图片描述
组件可实时热更替,也可以给编排好的逻辑流里实时增加一个组件,从而改变你的业务逻辑。
在这里插入图片描述
LiteFlow的脚本组件,支持众多脚本语言,完全和Java打通,你可以用脚本来实现任何逻辑。
在这里插入图片描述
LiteFlow支持把编排规则和脚本放在数据库,注册中心中,还有可以任意扩展的接口,方便你定制。
在这里插入图片描述

3. 项目特性

  • 组件定义统一: 所有的逻辑都是组件,为所有的逻辑提供统一化的组件实现方式,小身材,大能量。
  • 规则轻量: 基于规则文件来编排流程,学习规则入门只需要5分钟,一看即懂。
  • 规则多样化: 规则支持xml、json、yml三种规则文件写法方式,喜欢哪种用哪个。
  • 任意编排: 再复杂的逻辑过程,利用LiteFlow的规则,都是很容易做到的,看规则文件就能知道逻辑是如何运转的。
  • 规则持久化: 框架原生支持把规则存储在标准结构化数据库,Nacos,Etcd,Zookeeper,Apollo,Redis。您也可以自己扩展,把规则存储在任何地方。
  • 优雅热刷新机制: 规则变化,无需重启您的应用,即时改变应用的规则。高并发下不会因为刷新规则导致正在执行的规则有任何错乱。
  • 支持广泛: 不管你的项目是不是基于Springboot,Spring还是任何其他java框架构建,LiteFlow都能游刃有余。
  • JDK支持: 从JDK8到JDK17,统统支持。无需担心JDK版本。
  • Springboot支持全面: 支持Springboot 2.X到最新的Springboot 3.X。
  • 脚本语言支持: 可以定义脚本语言节点,支持Groovy,Java,Javascript,QLExpress,Python,Lua,Aviator。未来还会支持更多的脚本语言。
  • 脚本和Java全打通: 所有脚本语言均可调用Java方法,甚至于可以引用任意的实例,在脚本中调用RPC也是支持的。
  • 规则嵌套支持: 只要你想的出,你可以利用简单的表达式完成多重嵌套的复杂逻辑编排。
  • 组件重试支持: 组件可以支持重试,每个组件均可自定义重试配置和指定异常。
  • 上下文隔离机制: 可靠的上下文隔离机制,你无需担心高并发情况下的数据串流。
  • 声明式组件支持: 你可以让你的任意类秒变组件。
  • 详细的步骤信息: 你的链路如何执行的,每个组件耗时多少,报了什么错,一目了然。
  • 稳定可靠: 历时2年多的迭代,在各大公司的核心系统上稳定运行。
  • 性能卓越: 框架本身几乎不消耗额外性能,性能取决你的组件执行效率。
  • 自带简单监控: 框架内自带一个命令行的监控,能够知道每个组件的运行耗时排行。

4. 架构图

在这里插入图片描述

参考链接

https://liteflow.cc/
https://liteflow.cc/pages/5816c5/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 LiteFlow 的示例: ```python from liteflow.core import Workflow, Node, Edge, WorkflowRunner class StartNode(Node): def run(self, data, context): print("StartNode") return data class ProcessNode(Node): def run(self, data, context): print("ProcessNode") data["result"] = 100 return data class EndNode(Node): def run(self, data, context): print("EndNode") return data class MyWorkflow(Workflow): def __init__(self): super().__init__("MyWorkflow") start_node = StartNode(self, "StartNode") process_node = ProcessNode(self, "ProcessNode") end_node = EndNode(self, "EndNode") self.add_node(start_node) self.add_node(process_node) self.add_node(end_node) self.connect(start_node, process_node) self.connect(process_node, end_node) data = {"input": 10} runner = WorkflowRunner() result = runner.start(MyWorkflow(), data) print(result) ``` 这个示例中,我们定义了一个名为 MyWorkflow 的工作流,包括三个节点:StartNode、ProcessNode 和 EndNode。StartNode 只是简单地打印一条消息并将数据传递给下一个节点。ProcessNode 将数据处理后将结果存储到数据中,并将其传递给下一个节点。EndNode 只是简单地打印一条消息并返回数据。最后,我们创建了一个 WorkflowRunner 对象,并使用 start() 方法来启动 MyWorkflow 工作流,并将 data 作为输入数据传递给工作流。最后,我们打印工作流的输出结果。 这只是一个简单的示例,实际上,LiteFlow 可以构建更加复杂的工作流应用程序。例如,可以使用条件节点、并行节点等来实现更加复杂的工作流逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值