簡體   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