今天啟動一個使用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
編輯,按上述第三步修改其內容,保存並推出。