记录一次LiteFlow使用实战及原理分析

本文介绍了如何在SpringBoot项目中集成LiteFlow,包括配置依赖、组件定义、规则文件编写、动态构建流程、数据上下文管理以及高级特性。通过这些步骤,实现大数据平台中数据流式任务的可编排处理。


题外话:
最近喜欢上骑摩托车了,不是多大排量的摩托车,小排量踏板,当骑车的时候真的可以获得快乐抛却烦恼,八九十的速度也是可以到的,但是还是要管住右手,慢慢骑。希望以后可以换个自己喜欢的巡航,骑帅不骑快。
背景:
最近在做大数据平台,数据治理相关,大数据量数据的清洗、转换、补全、融合等操作处理,最开始的设计的是不同数据任务,但是这样的话就比较固化,可拓展性不强。基于对数据平台的产品化考虑,决定将数据的流式任务处理具象成流程化处理。
在码云及git上面看了些开源项目,研究了一下,感觉使用场景匹配度不是太高,并且代码及功能有些重,决定还是使用LiteFlow自己开发相应的流程组件,最终实现数据流程任务的可编排。

学习LiteFlow

具体可以查看下官方文档:LiteFlow官方文档,该说不说这个文档实在是太全面了,讲解也比较详细。
从HelloWorld到安装运行,从规则文件到各种组件,然后是数据上下文、动态构造及各种高级特性,接下来简单说一下一般场景下使用到的重要功能点:

spring boot整合LiteFlow

依赖

LiteFlow提供了liteflow-spring-boot-starter依赖包,提供自动装配功能:

<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>liteflow-spring-boot-starter</artifactId>
    <version>2.11.0</version>
</dependency>

配置

组件定义

在依赖了以上jar包后,你需要定义并实现一些组件,确保SpringBoot会扫描到这些组件并注册进上下文。

@Component("a")
public class ACmp extends NodeComponent {

	@Override
	public void process() {
		//do your business
	}
}

以此类推再分别定义b,c组件:

@Component("b")
public class BCmp extends NodeComponent {

	@Override
	public void process() {
		//do your business
	}
}
@Component("c")
public class CCmp extends NodeComponent {

	@Override
	public void process() {
		//do your business
	}
}

spring boot配置文件

然后,在你的SpringBoot的application.properties或者application.yml里添加配置(这里以properties为例,yml也是一样的)

liteflow.rule-source=config/flow.el.xml

规则文件的定义

同时,你得在resources下的config/flow.el.xml中定义规则,SpringBoot在启动时会自动装载规则文件。

<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <chain name="chain1">
        THEN(a, b, c);
    </chain>
</flow>

执行

可以在

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰红茶不会渴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值