使用异步休息服务的性能

时间:2014-08-01 11:02:11

标签: java performance rest java-ee asynchronous

我试图了解JAXRS 2.0异步功能,因此我使用Jersey 2.1和Glassfish 4来运行在有效负载中有线程休眠的REST服务。

使用

@GET
@Produces(MediaType.APPLICATION_JSON)
@ManagedAsync
public void getExamples(@PathParam("value") final Integer value,
        @Suspended final AsyncResponse res) {
    // This executes the method by a separated thread
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    res.resume((Integer) value * 2);
}

@GET
@Produces(MediaType.APPLICATION_JSON)
public Integer getExamples(@PathParam("value") final Integer value) {
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return (Integer) value * 2;
}

使用此web.xml

<display-name>Jersey2 Example</display-name>
<description>
    An example async Java REST API using Jersey 2
</description>

<servlet>
    <servlet-name>Jersey2 REST Servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>javax.ws.rs.Application</param-name>
      <param-value>com.jersey.test.ExampleApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

<servlet-mapping>
    <servlet-name>Jersey2 REST Servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我希望观察到请求/秒性能的显着差异。

然而,我得到完全相同的表现,我无法理解为什么。

你能给我一些关于发生了什么的提示吗?

0 个答案:

没有答案