發佈Java應用到阿里雲,啓動失敗,部分堆棧以下:java
at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:502) at java.net.InetAddress.checkLookupTable(InetAddress.java:1393) ... at com.alibaba.dubbo.common.utils.NetUtils.getLocalAddress0(NetUtils.java:188) at com.alibaba.dubbo.common.utils.NetUtils.getLocalAddress(NetUtils.java:180) at com.alibaba.dubbo.common.utils.NetUtils.getLocalHost(NetUtils.java:146) at com.alibaba.dubbo.common.logger.support.FailsafeLogger.appendContextMessage(FailsafeLogger.java:40) at com.alibaba.dubbo.common.logger.support.FailsafeLogger.warn(FailsafeLogger.java:110) at com.alibaba.dubbo.common.utils.NetUtils.getLocalAddress0(NetUtils.java:220) at com.alibaba.dubbo.common.utils.NetUtils.getLocalAddress(NetUtils.java:180) at com.alibaba.dubbo.common.utils.NetUtils.getLocalHost(NetUtils.java:146) at com.alibaba.dubbo.common.logger.support.FailsafeLogger.appendContextMessage(FailsafeLogger.java:40)
看了代碼,發現是dubbo的小bug:getLocalHost失敗會調用日誌打印,日誌打印的時候會自動帶上本機域名(調用getLocalHost),形成循環調用。app
2種解決方法:阿里雲
指定域名解析的方式還有其它用途:daily環境從內網遷移到阿里雲,指定解析爲外網IP,方便在內網調用。.net