`
fyjava
  • 浏览: 60666 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于request.getRemoteHost的性能问题

阅读更多

本文转自:http://operamasks.blogbus.com/logs/30966900.html

 

一个客户应用,在运行过程中反映出现性能问题,经定位,性能瓶颈出现在应用代码中的request.getRemoteHost()这一行,执行这一行需 要花费大约5秒。通过CTRL+BREAK输出当前堆栈,发现底层代码有去作dns查询的动作 java.net.InetAddress.getHostFromNameService(InetAddress.java:532),从而导致慢。 解决办法有2个:1.将request.getRemoteHost()改为request.getRemoteAddr() ;2.提供apusic的优化patch,并在启动脚本中添加参数。

分享到:
评论

相关推荐

    JSP获取HTTP header信息(request)例子

    - `request.getRemoteHost()`: 返回发起请求的客户端主机名。 2. **编码与内容信息** - `request.getCharacterEncoding()`: 返回请求的字符编码集,如果未设置则返回`null`。 - `request.getContentLength()`: ...

    Java获取客户端信息代码

    System.out.println(request.getRemoteHost()); // 客户端主机名或IP System.out.println(request.getProtocol()); // HTTP协议版本 System.out.println(request.getScheme()); // 协议(http/https) System.out....

    第九讲Nginx动静分离URL转发实战.pptx

    - **`request.getRemoteHost()`**: 获取远程主机名。 - **`request.getRemoteAddr()`**: 获取远程地址(客户端IP)。 - **`request.getAuthType()`**: 获取认证类型。 - **`request.getRemoteUser()`**: 获取远程...

    JSP获取客户端的浏览器和操作系统信息.pdf

    - **`request.getRemoteHost()`**:获取客户端主机名,如果无法获取则返回IP地址。 - **`request.getProtocol()`**:获取请求协议的名称和版本。 - **`request.getHeaderNames()`**:获取所有请求头的名字集合。 - *...

    JSP获取客户端的浏览器和操作系统信息

    - `request.getRemoteHost()`:获取客户端主机名(如果不可用,则返回IP地址)。 - `request.getProtocol()`:获取协议名称和版本。 #### 五、最佳实践与注意事项 1. **正确处理`User-Agent`字符串**:由于`User-...

    JAVA_Tomcat面试专题14道.pdf

    2. enableLookups:如果为true,request.getRemoteHost()将执行DNS查找,反向解析IP对应域名或主机名。 本文总结了Tomcat的基本概念、端口修改、Connector运行模式和参数配置等方面的知识点,为Java开发者和面试者...

    Tomcat面试题.pdf

    - `enableLookups`:如果设为true,`request.getRemoteHost()`会执行DNS查找,这可能会降低性能,一般建议设为false。 - `maxHttpHeaderSize`:最大HTTP头大小,超出这个值的请求会被拒绝。 4. **优化建议**: -...

    Request对象主要方法

    在深入探讨`Request`对象的主要方法之前,我们首先需要理解`Request`对象的基本概念及其在Web开发中的核心作用。`Request`对象是Web应用程序中处理客户端请求的关键组件,它封装了来自客户端的所有请求数据,包括但...

    tomcatserver.xml配置详解.pdf

    - enableLookups:是否通过request.getRemoteHost()进行DNS查询来解析客户端的实际主机名,默认为false。 4. <Engine> 标签:作为Service组件的一个子组件,用于处理所有发往该Service的请求。 - defaultHost=...

    Tomcat面试专题.pdf

    - **enableLookups**:若设为true,request.getRemoteHost()将执行DNS查找,反向解析IP。为了性能考虑,通常建议设为false。 最后,还有一些其他配置项,比如`maxHttpHeaderSize`,它定义了HTTP请求头的最大大小,...

    15道经典的Tomcat面试题!.pdf

    - `enableLookups`:如果设为`true`,`request.getRemoteHost()`会执行DNS查找,反向解析IP对应的域名或主机名。但通常建议设为`false`以提高性能。 在实际应用中,选择合适的Connector模式和配置参数对Tomcat的...

    tomcat配置文件server文件详解.pdf

    * enableLookups:如果为 true,则可以通过调用 request.getRemoteHost() 进行 DNS 查询来得到远程客户端的实际主机名,否则不进行 DNS 查询,而是返回其 IP 地址。 Engine 元素 Engine 元素是 Service 元素的子...

    ajp各参数含义

    6. **enableLookups**:若该值为true,`request.getRemoteHost()`会执行DNS查询以获取客户端的实际主机名。若为false,将直接返回IP地址字符串,提高性能。默认情况下,DNS查询是启用的。 7. **firstReadTimeout**...

    2024年java面试题-tomcat面试题

    - `enableLookups`: 如果为true,则`request.getRemoteHost()`会执行DNS查找,增加开销。 - **AIO (Asynchronous IO)**:从JDK 7开始支持,异步非阻塞I/O。适用于极高并发场景。 - **配置示例**: ```xml ...

    LogFilter (2)_javaweb_

    例如,我们可以使用`HttpServletRequest`的`getRemoteAddr()`方法获取远程客户端的IP地址,`getRemoteHost()`获取远程主机名,`getRequestURI()`获取请求的资源URI。然后,将这些信息格式化后写入日志文件。为了实现...

    JAVA servlet API说明文档

    SingleThreadModel是一个标记接口,用于指示Servlet对象是线程安全的,但不推荐使用,因为它可能会引起性能问题。 八、GenericServlet类 GenericServlet是一个通用的、独立于协议的Servlet基类,它实现了Servlet...

    JAVA认证资料 认证考试

    Servlet可以被看作是Java版的CGI脚本,但它提供了更多的功能和更好的性能。 #### 二、Servlet的基本结构 以下是一个简单的Servlet示例代码: ```java import java.io.*; import javax.servlet.*; import javax....

    JSP方法(总结)

    总之,`Request`对象、`Response`对象和`PageContext`对象是JSP技术中至关重要的组成部分,掌握它们的使用方法不仅能够帮助开发者更好地理解和管理客户端与服务器之间的通信,还能有效地提高Web应用程序的性能和用户...

Global site tag (gtag.js) - Google Analytics