集群中的 Apache NiFi Distribute Map Cache 问题
Apache NiFi Distribute Map Cache problems in a cluster
我将在单节点 NiFi 上工作的流程移动到 3 节点 NiFi 集群,突然,使用 DistributedMapCache 的等待处理器无法按预期工作,这意味着无法从缓存中恢复一个值。
为了确保该值存在于缓存中,我将缓存配置为使用持久目录,因此我能够检查缓存的内容,经过一些测试后意识到:
- 缓存写在有写入缓存流的节点中(DistributedMapCacheClientService指向localhost)
- 客户端只能恢复同一节点中的值。
另一个测试是强制在主节点中执行流程,在这种情况下,一切都按预期进行。
另一个测试是同时从所有节点写入缓存,仅适用于主节点。
所以我的问题是:
- DistributedMapCache 真的是跨集群分布的吗?
- 我可能遗漏了一些要点或配置错误吗?
您不应该在 DistributedMapCacheClientService 中使用本地主机,只需使用其中一个节点的主机名,那么您的所有客户端都将指向同一台服务器。
我将在单节点 NiFi 上工作的流程移动到 3 节点 NiFi 集群,突然,使用 DistributedMapCache 的等待处理器无法按预期工作,这意味着无法从缓存中恢复一个值。 为了确保该值存在于缓存中,我将缓存配置为使用持久目录,因此我能够检查缓存的内容,经过一些测试后意识到:
- 缓存写在有写入缓存流的节点中(DistributedMapCacheClientService指向localhost)
- 客户端只能恢复同一节点中的值。
另一个测试是强制在主节点中执行流程,在这种情况下,一切都按预期进行。
另一个测试是同时从所有节点写入缓存,仅适用于主节点。
所以我的问题是:
- DistributedMapCache 真的是跨集群分布的吗?
- 我可能遗漏了一些要点或配置错误吗?
您不应该在 DistributedMapCacheClientService 中使用本地主机,只需使用其中一个节点的主机名,那么您的所有客户端都将指向同一台服务器。