解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢
生活随笔
收集整理的這篇文章主要介紹了
解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
dubbo provider在暴露服務(wù)時(shí),會(huì)執(zhí)行 DubboServiceMetadataRepository.exportURL ,在這里會(huì)調(diào)用 inetUtils.findFirstNonLoopbackHostInfo() ,本人開(kāi)發(fā)環(huán)境下(win10+jdk8)執(zhí)行這句代碼需要3秒,每暴露一個(gè)服務(wù)都會(huì)調(diào)用一次,導(dǎo)致整個(gè)啟動(dòng)過(guò)程很久。
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容器獲取的,因此我們可以實(shí)現(xiàn)自己的Bean將其替代掉。
- 先創(chuàng)建個(gè)自己的 InetUtils:
- 替代Bean:
- 重新運(yùn)行即可,會(huì)發(fā)現(xiàn)spring-cloud-commons自帶的findFirstNonLoopbackAddress只會(huì)執(zhí)行一次
總結(jié)
以上是生活随笔為你收集整理的解决alibaba-dubbo调用findFirstNonLoopbackHostInfo导致启动慢的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Canal解析数据报错:column s
- 下一篇: 欢迎使用Markdown