Java - InetAddress.getLocalHost().getHostAddress() 踩过的坑!谨记 谨记

话不多说,先看代码:

... ...
LOGGER.DEBUG("-------- before srcIp to LOG--------");
InetAddress.getLocalHost().getHostAddress();//获取本机IP
LOGGER.DEBUG("-------- after srcIp to LOG--------");
... ...

本来平时一般也就是这样做的嘛,没啥问题啊;

结果,上周有同事去TW现场去不是这套代码的时候,发现这段代码执行特别慢,日志如下:

2019-01-24 16:28:01.115 [http-nio-11007-exec-10] DEBUG c.xxx.adapter.downlink.DownlinkServiceImpl - -------- before srcIp to LOG--------


2019-01-24 16:28:57.158 [http-nio-11007-exec-10] DEBUG c.xxx.adapter.downlink.DownlinkServiceImpl - -------- after srcIp to LOG--------

问题定位出来,发现在这个 InetAddress.getLocalHost().getHostAddress()地方。足足花费了一分钟的时间,什么鬼,在我们自己服务器上都是几毫秒就执行完了的呀!

有网友说:

执行慢的原因估计是DNS的问题,因为以前没有这问题,最近时好时坏,有时根本没问题,而最近因有的域名无法访问,添加了其它DNS后可以访问了,但DNS变了后解析本机地址也变慢了

我个人认为:

客户方部署这套代码是在K8S环境下的,k8s的网络本来就十分复杂,很有可能因为复杂的网络在DNS解析下变的更加缓慢而造成的。后来就果断的将这个获取本机ip的代码,换成获取配置文件中的配置ip来替代,从而避免了这个性能问题。

posted @   zhangdaopin  阅读(593)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示