zookeeper在单机上伪集群测试时,出现Unable to start AdminServer, exiting abnormally

出现该问题的原因大家都知道因为启动完一个zookeeper server后,默认的zkServer.cmd中,没有将对应的不启动AdminServer屏蔽。

AdminServerFactory.java中代码如下

 public static AdminServer createAdminServer() {
        if (!"false".equals(System.getProperty("zookeeper.admin.enableServer"))) {
            try {
                Class<?> jettyAdminServerC = Class.forName("org.apache.zookeeper.server.admin.JettyAdminServer");
                Object adminServer = jettyAdminServerC.getConstructor().newInstance();
                return (AdminServer) adminServer;

            } catch (ClassNotFoundException e) {
                LOG.warn("Unable to start JettyAdminServer", e);
            } catch (InstantiationException e) {
                LOG.warn("Unable to start JettyAdminServer", e);
            } catch (IllegalAccessException e) {
                LOG.warn("Unable to start JettyAdminServer", e);
            } catch (InvocationTargetException e) {
                LOG.warn("Unable to start JettyAdminServer", e);
            } catch (NoSuchMethodException e) {
                LOG.warn("Unable to start JettyAdminServer", e);
            } catch (NoClassDefFoundError e) {
                LOG.warn("Unable to load jetty, not starting JettyAdminServer", e);
            }
        }
        return new DummyAdminServer();
    }

因为第一个启动的Zookeeper server已经把8080端口给占用了

根据创建JettyAdminServer中代码如下:

    public JettyAdminServer() throws AdminServerException {
        this(Integer.getInteger("zookeeper.admin.serverPort", DEFAULT_PORT),
             System.getProperty("zookeeper.admin.commandURL", DEFAULT_COMMAND_URL));
    }

所以可以在zkServer.cmd中的最后一个call参数中,增加"-Dzookeeper.admin.enableServer=false"

或者

"-Dzookeeper.admin.serverPort=你的端口号"  

更改端口号后再进行启动,这样在单机环境下配置集群测试就OK了

时间: 2024-10-03 13:27:48

zookeeper在单机上伪集群测试时,出现Unable to start AdminServer, exiting abnormally的相关文章

zookeeper(单机、伪集群、集群)部署

ZooKeeper是一个分布式的.开源的分布式应用程序协调服务,可以在分布 式环境中实现应用配置管理.统一命名服务.状态同步服务等功能.ZooKeeper是一种为分布式应用所设计的高可用.高性能的开源协调服务,它提供了一项基本服务:分布式锁 服务.由于ZooKeeper开源的特性,在其分布式锁实现的基础上,又被摸索出了其它的功用,譬如:配置维 护.组服务.分布式消息队列等等. ZooKeeper维护了一个类似文件系统的数据结构,其内部每个子目录都被 称作znode(目录节点),与文件系统一样,我

安装zookeeper(单机,伪集群)

1.登陆zookeeper官网下载 https://zookeeper.apache.org/ zookeeper-3.4.8.tar.gz 解压:tar -zxvf zookeeper-3.4.8.tar.gz 1.单机 进入conf文件夹 创建一个配置文件zoo.cfg. tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/zk/data clientPort=2181 前提创建了/usr/local/zoo

Dubbo 入门实例 本地伪集群测试Demo

1.   概述 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点: 那么,Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种

Dubbo入门实例 本地伪集群测试Demo

1.   概述 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点: 那么,Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种

zookeeper 的安装和伪集群配置

zookeeper的安装 tar -zxvf  zookeeper-3.4.8.tar.gz mv zookeeper-3.4.8 /usr/local/ 修改zk的配置文件 cp zoo_sample.cfg zoo.cfg tickTime: zookeeper中使用的基本时间单位, 毫秒值. dataDir: 数据目录. 可以是任意目录. dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置. clientPort: 监听cli

[dubbo实战] dubbo+zookeeper伪集群搭建

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

dubbo+zookeeper伪集群配置

zookeeper作为注册中心,服务器和客户端都要访问,如果有大量的并发,肯定会有等待.所以可以通过zookeeper集群解决. 一.为什么需要zookeeper呢? 大部分分布式应用需要一个主控.协调器或者控制器来管理物理分布的子进程.目前,大多数都要开发私有的协调程序,缺乏一个通用机制,协调程序的反复编写浪费,且难以形成通用.伸缩性好的协调器,zookeeper提供通用的分布式锁服务,用以协调分布式应用.所以说zookeeper是分布式应用的协作服务. 二.zookeeper的工作原理 核心

四:ZooKeeper的集群,伪集群,单机的搭建

一:zookeeper集群模式配置[1]zookeeper/cnfg/zoo_sample.cfg复制一份样例文件,将配置写在zoo.cfg中.集群中所有节点的该目录下都要放置相同的配置文件#dataDir=/var/zookeeper存储zookeeper快照文件的目录,要在liunx该目录下创建zookeeper目录 #clientport=2181zookeeper服务器对外提供服务的端口号 #server.ID=host:port1:port2 ID==>ZK集群中节点的idhost==

备忘zookeeper(单机+伪集群+集群)

#下载: #单机模式 解压到合适目录. 进入zookeeper目录下的conf子目录, 复制zoo_sample.cfg-->zoo.cfg(如果没有data和logs就新建):tickTime=2000 dataDir=/Users/apple/zookeeper/data dataLogDir=/Users/apple/zookeeper/logs clientPort=2180 参数说明:tickTime: zookeeper中使用的基本时间单位, 毫秒值.dataDir: 数据目录. 可