Dav*_*ero 8 java rest web-services jdbc jersey
我正在使用Eclipse,Tomcat7和Jersey实现开发一个非常简单的REST Web服务,并与MySQL建立连接.查看泽西文档,我知道每个请求都会创建根资源类的新对象.但我不知道每个请求是否是独立的,例如,如果一个请求需要等待很长时间,服务器将接受更多的请求?
问题是:我有2个主要类,1个类实现带注释的Jersey(Proxy.java),以及连接到BD(Notificator.java)的其他类,这个类只有一个实例(Singleton)才能仅使用1个Connection对象.实现Jersey的类使用此类.因此,如果其中一个请求被阻止,我不知道其他人是否会运行,因为他们使用相同的(Notificator.java)实例.
关系是N个实例(Proxy.java)使用唯一一个(Notificator.java)与MySQL有一个连接.
Jersey 是在 servlet 之上开发的。每个传入请求都有一个新线程。您的代码正在为所有线程创建瓶颈,因为存在对单个可用连接对象的争用。如果您有多个请求,则只有一个请求将使用该连接,而其他请求则必须等待。如果等待时间不是太长的话就没有问题。但是,如果等待时间超过 HTTP REQUEST TIMEOUT,那么您的其他请求可能最终会超时。
据我了解,由于某些业务需求/复杂性,您可能会遇到单一连接瓶颈。因此,在所有这些情况下,我们无法同时处理所有请求,并且可能有多种原因,那么我们应该将 Web 服务创建为异步服务。异步 Web 服务采用“提交请求”->“请求接受”(将异步处理)模型,并返回作业 URL 进行轮询->“客户端轮询”,直到作业未完成。
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
7759 次 |
| 最近记录: |