[英]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。
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.