前言:本文重点在于通过模拟事故来探索Apache NIFI集群的高可用,情景假定有一个3节点的NIFI集群,其中某个节点因为未知原因与集群失联,研究集群(两个在联节点集群)和失联的节点会发生什么,各个节点上的数据会怎样。(注意:节点因为未知原因与集群失联区别于系统管理员手动卸载节点)。除此之外,其他不做重点。
我尽量详细描述探索过程,读者可以跟着本文一起实地操作验证。
搭建3节点伪集群
本节简单说明一下在本地搭建一个3节点的伪集群配置。
NIFI版本:nifi-1.12.0-SNAPSHOT(是的,你没看错,作者也是偶尔会给Apache贡献代码的人)
本机系统:MacOS
zookeeper:NIFI内置zookeeper
修改nifi.properties(我把需要修改的挑选了出来)
# Specifies whether or not this instance of NiFi should run an embedded ZooKeeper server
nifi.state.management.embedded.zookeeper.start=true
# 3个节点分别是8081 8082 8083
nifi.web.http.port=8081
# cluster node properties (only configure for cluster nodes) #
nifi.cluster.is.node=true
# 3个节点分别是9081 9082 9083
nifi.cluster.node.protocol.port=9081
# 3个节点分别是6341 6342 6343
nifi.cluster.load.balance.port=6341
# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=localhost:2181,localhost:2182,localhost:2183
修改zookeeper.properties(注意3.5.5之后客户端端口要配置在server字符串后面)
# 3个节点都一样
server.1=localhost:2111:3111;2181
server.2=localhost:2222:3222;2182
server.3=localhost:2333:3333;2183
修改state-management.xml(3个节点都一样)
<cluster-provider>
<id>zk-provider</id>
<class