今天启动一个使用dubbo+zookeeper实现分布式的项目,发现Windows下一会就能够启动的项目,在mac下就和卡顿一样,愣是等了十二分钟才运行出来,在网上找到相关解决方案,特来记录,敬后来者。
发生这个问题时我的系统版本为:macOS Mojave 10.14.5。
根据其他人描述,不仅是在zookeeper中,相同的问题还发生在jetty9、jstack和jmap中。
卡顿主要是在获取主机地址时发生的:
java.net.InetAddress.getLocalHost ().getHostAddress();
这句代码在windows中执行没问题,但是在mac中可能会导致卡顿发生,如果需要加速其获取本地地址速度,则需要执行一下操作:
- 打开命令行,获取本机名称
echo $HOSTNAME
- 通过命令行修改/etc/hosts
vim /etc/hosts
- 将第一步获取的主机名配置到127.0.0.1和::1(分别代表IPv4和IPv6地址中的本地地址,主机名以test.local为例)
//首先输入i进入编辑模式
//通过方向键和回车将以下部分**添加**到文档中
127.0.0.1 test.local
::1 test.local
- 第四步,按
esc
,输入:wq
保存修改并推出即可。
方法2,打开访达(Finder),commond+shift+g
前往/etc/hosts
目录下,使用文本编辑
或者sublime Text
编辑,按上述第三步修改其内容,保存并推出。