zookeeper第一次连接超慢问题
-
java 连接zookeeper 测试代码
String zookeeperAddress = "192.168.100.66:2181"; ZooKeeper zooKeeper = null; @Before public void before() throws IOException { ZooKeeper zooKeeper = new ZooKeeper(zookeeperAddress, 60*1000, new Watcher() { @Override public void process(WatchedEvent event) { System.out.println("连接"); } }); this.zooKeeper = zooKeeper; System.out.println( "连接状态状态:" + zooKeeper.getState() ); } /** * 原生客户端 * * @author ZHANGYUKUN * @throws IOException * @throws InterruptedException * @throws KeeperException * @Date 2022年6月1日 * */ @Test public void create() throws KeeperException, InterruptedException { //zooKeeper.create("/test/te/a","value".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); Stopwatch stopwatch = Stopwatch.createUnstarted(); stopwatch.start(); zooKeeper.create("/test/te/t5","value".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); stopwatch.stop(); System.out.println( stopwatch.elapsed( TimeUnit.MILLISECONDS ) ); stopwatch.reset(); stopwatch.start(); zooKeeper.create("/test/te/t6","value".getBytes(),ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); stopwatch.stop(); System.out.println( stopwatch.elapsed( TimeUnit.MILLISECONDS ) ); }
-
连接慢的效果,下面第一次连接用了9秒
据说zk客户端默认优先通过域名方式去dns查找服务器IP,饶了一圈找不到回来然后才使用IP方式去连接。9秒是尽量查询各级DNS的时间。
-
在客户端主机上修改hosts文件
修改了 hosts 可以认为是在当前主机最近的一层DNS上做了映射,直接就能找到,并且zookeeper解析方式是双向,不管匹配到是IP还是域名列都直接开始执行。
hosts文件,不管是window linux 还是 mac 都有这个文件
-
改了以后不管用ip还是 主机名连接都是飞快
能耍的时候就一定要耍,不能耍的时候一定要学。
天道酬勤,贵在坚持
posted on 2023-03-07 23:23 zhangyukun 阅读(431) 评论(0) 编辑 收藏 举报