Skip to main content

LoadConfig

1.概述

该组件用于将ini、yaml、properties或json类型的数据通过分布式服务中(DistributedMapCacheClient)解析上传至第三方存储中(例如Redis、HBASE等)

distribute-cache-service (分布式缓存服务)

可以选择存储配置数据的第三方库。

config-source (配置源)

所谓的配置源就是配置数据的来源或渠道。包括以下几种:

  • FILE_SOURCE:从URL(一般是本地配置文件)读取数据。
  • FLOW_FILE_SOURCE:从传输的flowFile流中读取配置数据。
  • ATTR_SOURCE:从传输的flowFile流的属性中读取配置数据。

data-type (数据的类型或格式)

支持ini、properties、yaml 或JSON 类型的数据

file-url (文件的地址)

当配置源选择的是FILE_SOURCE时,file-url不能为空。可以是网络文件地址以http://开头或是本地文件地址以file:///开头,如果没有配置任何头信息的话,默认会当做本地文件处理

include-properties (包含的属性)

包含的属性(键值)。如果开启了正则支持,则可以赋值为多个正则表达式。多个值之间使用逗号隔开。

exclude-properties (排除的属性)

排除的属性(键值)。如果开启了正则支持,则可以赋值为多个正则表达式。多个值之间使用逗号隔开。

support-regex (是否支持正则)

默认是false,默认情况下,include-properties和exclude-properties是不支持正则的,是完全的键匹配。

注意事项:关于配置数据的筛选规则如下:

  1. 当include-properties为空时,从加载的数据中排除掉指定的键值,然后上传。
  2. 当include-properties不为空时,先从加载的数据中筛选出包含的键值,然后从包含的键值中排除指定的键值,最后上传。

2. 示例1:将json数据解析上传

模板: LoadJsonFile.xml

ccc.txt

{
"owner": {
"name": "John",
"organization": "APP Inc."
},
"database": {
"name": "default",
"server": {
"host": "localhost",
"port": {
"listen": true,
0: 143
},
0: "192.0.2.62"
},
"file": "payroll.dat"
}
}

配置详情如下:

这里选择的服务是Redis存储。启动命令如下:

redis-server --protected-mode no

启动LoadConfig,查看默认的第0库