windows下zookeeper客戶端啟動慢問題及解決


1 問題

windows下zookeeper客戶端啟動特別慢,要9秒以上。

 

環境:

windows 8.1 64-bit

 

版本:

<dependency>
  <groupId>org.apache.curator</groupId>
   <artifactId>curator-framework</artifactId>
   <version>3.3.0</version>
</dependency>

 

測試代碼:

String conStr1 = "127.0.0.1:2181";
CuratorFramework client = CuratorFrameworkFactory.newClient(conStr1,
         new RetryNTimes(10, 5000));
long beginTime = System.currentTimeMillis();
// 連接, 這一步非常慢
client.start();
System.out.println("耗時:" + (System.currentTimeMillis() - beginTime));
耗時要9秒以上。

2 分析

  使用jvisualvm.exe的cpu采樣之后,發現java.net.InetAddress.getCanonialHostName()慢。它占用了97%的時間。如下圖所示:

clip_image002

  為何java.net.InetAddress.getCanonialHostName()這么慢呢?

  經過一番排查之后,發現是Npcap引起的。在網絡連接中可以發現2個跟Npcap相關的適配器,如下所示:

clip_image004

3 解決方案

   將本項目不會用到的網絡適配器條目禁用掉,只保留會用到的。

clip_image006

注意事項:

  •  Npcap loopback適配器和KM-TEST環回適配器是我在安裝Wireshark時被安裝的,禁用掉這2項,會導致Wireshark環回抓包功能失敗。

4 效果

  重新運行了測試代碼,發現時間只要200毫秒。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM