Zookeeer,作为分布式协调服务,在启动时会监听多个端口以保证其服务的稳定性和高效性。以下是关于Zookeeer启动时最多监听几个端口及相关知识的详细介绍。
1.Zookeeer的Watcher机制
Zookeeer提供了一种称为Watcher的机制,允许客户端注册监听器来监听特定Znode的更改。当被监听的Znode发生变化时(例如,数据更改、子节点的增加或删除),Zookeeer会异步地通知注册了Watcher的客户端。
2.Zookeeer的数据模型
在Zookeeer中,znode可以有子节点目录,并且每个znode可以存储数据。EHEMERAL类型的目录节点不能有子节点目录。znode是有版本的,每个znode中存储的数据可以有多个版本。
3.Zookeeer的节点监听
之后,当关注的节点删除,客户端的Watcher会收到相应通知。此时再次判断自己创建的节点是否是locker子节点中最小的,如果是则获取到了锁,如果不是则重复以上步骤继续获取到比自己小的一个节点并注册监听。当前这个过程中还需要许多的逻辑判断。
4.Zookeeer的端口监听
在Zookeeer中,端口是进程监听的端口。例如,3306是MySQL的默认端口,而Zookeeer在启动时会监听多个端口,以实现不同的服务功能。
5.Zookeeer的监控与资源指标
使用监控系统可以自动实现进程端口监控。在蓝鲸自带的监控系统监控平台中,可以查看进程的运行情况,包括其占用的CU、内存使用率以及文件句柄数等进程占用的资源指标。
6.Zookeeer异常处理
若客户端的某操作被中断,则会抛出InterrutedExcetion异常。抛出该异常时,不一定是出现故障,只能表明某个Zookeeer操作被中断而已。KeeerExcetion异常则是当服务器发出错误信号或是服务器存在通信故障时抛出的。
7.Zookeeer的数据版本与变更通知
子节点列表变更(Watch(ChildWatches)):如果客户端对某个ZNode设置子节点列表变更Watch,当该ZNode的子节点集发生变化(新增、删除子节点)时,ZooKeeer会发送通知。
8.Zookeeer的配置文件读取
Zookeeer启动时会读取配置文件,拿里面的数据与zoo.cfg中的配置信息比较判断哪个是server。这个过程是Zookeeer启动时端口监听配置的关键步骤。
Zookeeer在启动时会监听多个端口,以确保其Watcher机制、数据模型、节点监听、端口监听、监控与资源指标、异常处理以及配置文件读取等功能能够正常运作。通过这些机制,Zookeeer能够在分布式系统中提供高效稳定的协调服务。