我建立了一个 3 主机 nifi 集群。它可以工作,但我不能使用平衡器。我所能做的就是直接连接到单个主机。有人使用平衡器设置了一个 nifi 集群吗?IE如何处理证书问题?
1 回答
您是在尝试对 UI 交互或特定处理器/输入源进行负载平衡吗?使用 NiFi 的零主集群 (ZMC),在 1.0.0+ 中可用,您可以连接到任何连接节点的 UI 并监控和修改流程。如果您尝试对输入数据进行负载平衡,我建议您使用在主节点上运行的单点入口处理器(请参阅下面的摘录),然后将数据分布到整个集群中,或者如果您确实需要立即进行负载平衡性能,可能设置诸如HAProxy或另一个前端负载均衡器(甚至是循环 DNS)并指向所有可用节点。
如果您尝试跨集群负载平衡工作,允许在节点之间传输的远程进程组会自动平衡可用 NiFi 节点之间的数据。
来自NiFi 管理员指南
主节点:每个集群都有一个主节点。在这个节点上,可以运行“隔离处理器”(见下文)。ZooKeeper 用于自动选举主节点。如果该节点因任何原因与集群断开连接,将自动选出一个新的主节点。用户可以通过查看用户界面的集群管理页面来确定当前被选为主节点的节点。
隔离处理器:在 NiFi 集群中,相同的数据流在所有节点上运行。因此,流程中的每个组件都在每个节点上运行。但是,可能存在 DFM 不希望每个处理器在每个节点上运行的情况。最常见的情况是使用处理器与外部服务通信时使用的协议不能很好地扩展。例如,GetSFTP 处理器从远程目录拉取数据,如果 GetSFTP 处理器在集群中的每个节点上运行,同时尝试从同一个远程目录拉取数据,则可能存在竞争条件。因此,DFM 可以将主节点上的 GetSFTP 配置为独立运行,这意味着它只在该节点上运行。它可以提取数据,并通过适当的数据流配置在集群中的其余节点之间进行负载平衡。请注意,虽然存在此功能,但简单地使用独立的 NiFi 实例来提取数据并将其提供给集群也很常见。这仅取决于可用资源以及管理员决定如何配置集群。