15.4.2 ZooKeeper会话及状态

ZooKeeper客户端通过句柄为ZooKeeper服务建立一个会话。这个会话一旦被创建,句柄将以CONNECTING状态开始启动。客户端将尝试连接到其中一个ZooKeeper服务器,如果连接成功,它的状态将变为CONNECTED。在一般情况下只有上述这两种状态。如果一个可恢复的错误发生,比如会话终结或认证失败,或者应用程序明确地关闭了句柄,句柄将会转入关闭状态。

ZooKeeper的状态转换如图15-7所示:

15.4.2 ZooKeeper会话及状态 - 图1

图 15-7 ZooKeeper状态转换图

为了创建一个客户端会话,应用程序必须提供一个由主机(IP或主机名)和端口所组成的连接字符串,这个字符串标识了要连接的目标主机及主机端口。ZooKeeper客户端将选择服务器列表中的任意一个服务器并尝试连接。如果连接失败,那么客户端将自动尝试连接服务列表中的其他服务器,直到连接成功。