zoukankan      html  css  js  c++  java
  • request.getRemoteAddr()和request.getRemoteHost()

    转自:https://www.cnblogs.com/aizj/p/7593209.html

    request.getRemoteAddr()是获得客户端的ip地址。
    request.getRemoteHost()是获得客户端的主机名。

     关于request.getRemoteHost的性能问题

      

      在一个业务系统中使用request.getRemoteHost(),会造成使用该方法使用该功能模块时速度特别慢
       
        (测试功能时发现该功能模块中对应的域名获取的是host文件中从前往后第一个与本机IP一致的域名)

    解释如下:
     一个客户应用,在运行过程中反映出现性能问题,经定位,性能瓶颈出现在应用代码中的request.getRemoteHost()这一行,执行这一行需要花费大约5秒。通过CTRL+BREAK输出当前堆栈,发现底层代码有去作dns查询的动作java.net.InetAddress.getHostFromNameService(InetAddress.java:532),从而导致慢。




           解决办法有2个:




           1、将request.getRemoteHost()改为request.getRemoteAddr() 。




           2、提供apusic的优化patch,并在启动脚本中添加参数。

    按方法1修改后并在现场验证问题已解决,第二种方法没有试验有待考证。

  • 相关阅读:
    .Net vs Java?
    使用HyperV安装Linux系统
    C#调用Lua
    KubernetesService介绍服务发现
    缓存雪崩、缓存击穿和缓存穿透
    10 个开源项目
    minikube cncf.io
    Parallel的使用
    通过Rancher Desktop在桌面上运行K8s
    2021 .NET 开发者峰会顺利在网上落幕,线上直播回看汇总
  • 原文地址:https://www.cnblogs.com/sharpest/p/7546460.html
Copyright © 2011-2022 走看看