繁体   English   中英

同时请求球衣休息服务

[英]concurrent request to jersey rest service

我正在使用Eclipse,Tomcat7和Jersey实施开发一个非常简单的REST Web服务,并连接到MySQL。 查看球衣文档,我知道每个请求都会创建根资源类的新对象。 但是我不知道每个请求是否都是独立的,例如,如果一个请求必须等待很长时间,服务器会正​​常接受更多请求吗?

问题是:我有2个主要类,其中1个类实现带有批注(Proxy.java)的Jersey,而其他类连接到BD(Notificator.java),则只有一个此类(Singleton)的实例才能仅使用1个Connection对象。 实现Jersey的类使用此类。 因此,如果其中一个请求被阻止,我不知道其他请求是否会运行,因为它们使用的是相同的(Notificator.java)实例。

该关系是(Proxy.java)的N个实例使用唯一的一个(Notificator.java)与MySQL有一个Connection。

Jersey是在servlet之上开发的。 每个传入请求都有一个新线程。 您的代码正在为所有线程创建瓶颈,因为单个可用连接对象存在争用。 如果您有多个请求,则只有一个请求将使用该连接,而其他请求则必须等待。 如果等待时间不太长,那么就没有问题。 但是,如果等待时间超过了HTTP REQUEST TIMEOUT,那么您的其他请求可能最终会成为TIMED OUT。

我了解由于某些业务需求/复杂性,您可能遇到单一连接瓶颈。 因此,在所有无法同时处理所有请求且可能有多种原因的情况下,我们应该将Web服务创建为“异步”。 异步Web服务在SUBMIT REQUEST-> REQUEST ACCEPTED(将被异步处理)的模型上工作,并返回JOB URL以进行轮询-> CLIENT POLLS,直到未完成JOB。

希望能帮助到你!

尝试数据库连接池,有关更多信息,请参见:

http://en.wikipedia.org/wiki/Connection_pool

如何在JDBC中建立连接池?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM