Apache NiFi - 存储和访问动态数据

问题描述 投票:0回答:2

我是 Apache NiFi 的真正初学者,我正在尝试找到执行以下过程的最佳方法。

我有一个 API,它公开了一个端点,为我提供下一个请求的令牌(可用几个小时)。我想存储此令牌用于通用目的,因为我需要其他流访问此令牌。

我不想使用文件或外部数据库,所以我想知道是否使用变量......但老实说......不知道这是否是最好的方法。

到目前为止,我知道如何连接 API(InvokeHTTP)并获取令牌(EvaluateJsonPath),但我不知道如何存储和在哪里(变量?)以及如何在另一个流程中使用它。

目前的流量:

存储令牌:GenerateFlowFile -> InvokeHTTP ->EvaluateJsonPath -> ??

使用令牌的新请求:GenerateFlowFile -> InvokeHTTP(这里我需要访问令牌)

有人可以帮助我吗?

非常感谢你!!

apache-nifi
2个回答
1
投票

您可以考虑使用

DistributedMapCache
控制器服务。

流程类似于:

GenerateFlowFile
->
InvokeHTTP
->
EvaluateJsonPath
->
PutDistributedMapCache

GenerateFlowFile
->
FetchDistributedMapCache
->
InvokeHTTP


0
投票

分布式地图缓存服务器 用于在内存缓存中设置

分布式MapCacheClient服务 用作sdk来放置和获取缓存

步骤

  1. 设置分布式地图缓存服务器(使用默认值)
  2. 使用默认值设置分布式地图缓存客户端服务,并将“serverhostname”设置为“localhost”
  3. 添加 PutDistributedMapCache 将令牌上传到缓存,使用“缓存条目标识符”中的静态值或属性,这将充当缓存值的键
  4. 添加 FetchDistributedMapCache 在“缓存条目标识符”中使用相同的值,记住它是查找的关键
  5. 将要放入属性的最大长度设置为缓存值的所需长度
  6. 如果未设置“将缓存值放入属性”,Fetch 过程将使用缓存值重写流文件
© www.soinside.com 2019 - 2024. All rights reserved.