I moved a flow that was working on a single node NiFi to a 3 nodes NiFi cluster, and suddenly a wait processor that makes use of the DistributedMapCache doesn't works as expected, this means that wasn't able to recover a value from the cache. To be sure that the value exists in the cache I configured the cache to use a persistent directory, so I was able to check the content of the cache, after some testing a realize that:
- The cache was written in the node that have the flow that writes to the cache (DistributedMapCacheClientService points to localhost)
- The client is able to recover only values that are in the same node.
Another test was to force the execution of the flows in the Primary node, in this case everything works as expected.
Another test was to write the cache from all the nodes at the same time, only worked for the primary node.
So my questions are:
- Is the DistributedMapCache really distributed across a cluster?
- May I be missing some point or misconfiguring something?