request.getRemoteAddr()是获得客户端的ip地址。
request.getRemoteHost()是获得客户端的主机名。
关于request.getRemoteHost的性能问题
一个客户应用,在运行过程中反映出现性能问题,经定位,性能瓶颈出现在应用代码中的 request.getRemoteHost()这一行,执行这一行需要花费大约5秒。通过CTRL+BREAK输出当前堆栈,发现底层代码有去作dns 查询的动作java.net.InetAddress.getHostFromNameService(InetAddress.java:532),从 而导致慢。
解决办法有2个:
1、将request.getRemoteHost()改为request.getRemoteAddr() 。
2、提供apusic的优化patch,并在启动脚本中添加参数。
本文介绍了一个应用程序中出现的性能问题,该问题源于使用request.getRemoteHost()方法导致的DNS查询延迟。文章提供了两种解决方案:一是用request.getRemoteAddr()替代;二是应用补丁并配置启动参数。
1660

被折叠的 条评论
为什么被折叠?



