同时要求对球衣休息服务

时间:2013-04-03 09:09:10

标签: java web-services rest jdbc jersey

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

问题是: 我有2个主要类,1个类实现带注释的Jersey(Proxy.java),以及连接到BD(Notificator.java)的其他类,这个类只有一个实例(Singleton)才能使用1个连接宾语。实现Jersey的类使用此类。因此,如果其中一个请求被阻止,我不知道其他人是否会运行,因为他们正在使用相同的(Notificator.java)实例。

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

2 个答案:

答案 0 :(得分:3)

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

据我所知,由于某些业务需求/并发症,您可能会遇到单一连接瓶颈。因此,在我们无法同时处理所有请求并且可能有多种原因的所有这些情况下,我们应该将我们的Web服务创建为异步。异步Web服务在SUBMIT REQUEST->模型上工作。 REQUEST ACCEPTED(将异步处理)和JOB URL返回轮询 - >客户投票直至工作未完成。

希望它有所帮助!

答案 1 :(得分:0)

尝试数据库连接池,更多信息请点击此处:

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

How to establish a connection pool in JDBC?