解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢
生活随笔
收集整理的這篇文章主要介紹了
解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
dubbo provider在暴露服務時,會執行 DubboServiceMetadataRepository.exportURL ,在這里會調用 inetUtils.findFirstNonLoopbackHostInfo() ,本人開發環境下(win10+jdk8)執行這句代碼需要3秒,每暴露一個服務都會調用一次,導致整個啟動過程很久。
public void exportURL(URL url) {URL actualURL = url;InetUtils.HostInfo hostInfo = inetUtils.findFirstNonLoopbackHostInfo();String ipAddress = hostInfo.getIpAddress();// To use InetUtils to set IP if they are different// issue :// https://github.com/spring-cloud-incubator/spring-cloud-alibaba/issues/589if (!Objects.equals(url.getHost(), ipAddress)) {actualURL = url.setHost(ipAddress);}this.allExportedURLs.add(actualURL.getServiceKey(), actualURL);}這里的 inetUtils 是從Spring容器獲取的,因此我們可以實現自己的Bean將其替代掉。
- 先創建個自己的 InetUtils:
- 替代Bean:
- 重新運行即可,會發現spring-cloud-commons自帶的findFirstNonLoopbackAddress只會執行一次
總結
以上是生活随笔為你收集整理的解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Canal解析数据报错:column s
- 下一篇: Linux挂载新磁盘