📜Apollo配置源
LiteFlow从2.9.5开始,原生支持了Apollo配置中心。你可以在配置中心里配置你的链路和脚本。
# 依赖
如果使用Apollo作为规则配置源,你需要添加以下额外插件依赖:
<dependency>
<groupId>com.yomahub</groupId>
<artifactId>liteflow-rule-apollo</artifactId>
<version>2.10.7</version>
</dependency>
# 配置
依赖了插件包之后,你无需再配置liteflow.ruleSource
路径。
只需要配置插件的额外参数即可:
liteflow:
rule-source-ext-data-map:
chainNamespace: chainConfig
scriptNamespace: scriptConfig
liteflow.rule-source-ext-data={\
"chainNamespace":"chainConfig",\
"scriptNamespace":"scriptConfig",\
}
// Make sure to add code blocks to your code group
# 配置说明
配置项 | 说明 |
---|---|
chainNamespace | 规则命名空间名称 |
scriptNamespace | 脚本命名空间名称 |
# 存储数据说明
提示
由于在Apollo中,推荐的做法是把连接信息和环境信息放到服务器的appdatas
下的server.properties
文件中的。所以在LiteFlow的配置文件中是不指定连接信息的。这点要注意下。
对于规则来说,你在Apollo中需要为规则单独创建一个Namespace
,数据类型选择properties
,那么这个Namespace
下的每一对kv都是一个规则,假设你的规则命名空间为:chainConfig
,那么配置形式样例如下:
Namespace:chainConfig | |
---|---|
chain1 | THEN(a, b, c); |
chain2 | IF(x, b).ELIF(y, c).ELSE(d); |
对于脚本命名空间来说,key有固定格式:脚本组件ID:脚本类型:脚本名称
,value为脚本数据,假设你的脚本命名空间为:scriptConfig
,那么配置形式样例如下:
Namespace:scriptConfig | |
---|---|
s1:script:脚本组件1 | defaultContext.setData("s1","hello") |
s2:if_script:脚本组件2 | if(a > 100){return true;}else{return false;} |
# 自动刷新
Apollo支持推送配置数据的变更,凡是在Apollo里的规则和脚本变动,会自动推送到业务系统,进行实时的平滑热刷新,你需做任何事情。
帮助我们改善此文档 (opens new window)
上次更新: 2023/08/04, 17:02:03