【问题标题】:Launching zookeeper in a separate thread在单独的线程中启动 zookeeper
【发布时间】:2023-03-08 13:20:01
【问题描述】:

我正在尝试以这种方式将多个嵌入式 Zookeeper 服务器从 Java 应用程序启动到单独的线程中:

String port1 = "2181";
String directory1 = new File(System.getProperty("java.io.tmpdir"), "zookeeper/data1").getAbsolutePath();
final ServerConfig config1 = new ServerConfig();
config1.parse(new String[] { port1, directory1 });
new Thread(new Runnable() {      
  @Override
  public void run()
  {
    try{
      ZooKeeperServerMain zk = new ZooKeeperServerMain()
      zk.runFromConfig(config1);
    }catch(Exception e){
      e.printStackTrace();
    }        
  }
}).run();    

当我这样启动zk时,主进程被阻塞,其余指令不执行! 有没有在单独的线程中启动 zookeeper 的正确方法?

【问题讨论】:

    标签: java multithreading configuration distributed apache-zookeeper


    【解决方案1】:

    您在Thread 上调用run() 而不是start()

    new Thread(new Runnable() {      
    @Override
    public void run()
    {
      try{
        ZooKeeperServerMain zk = new ZooKeeperServerMain()
        zk.runFromConfig(config1);
      }catch(Exception e){
        e.printStackTrace();
      }        
    }
    }).start(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多