2010-04-22 23 views
0

我想調用一個bean中的http客戶端方法(HTTP PUT,GET,),但我想要這些bean,無論是MDB還是無狀態會話bean,儘可能快地運行(極短的生命週期)。尋找一個很好的解決方案來調用一個bean中的http客戶端方法(即MDB,session)

---[ejb request]--> bean -----[http request]----> host 

問題是,HTTP連接速度太慢(特別是連接到慢主機時)。 以MDB爲例,由於HTTP延遲,MDB運行時間過長,並且隨着消息的繼續,隊列很快就會停頓。 (消息生產者比http方法調用快。)

我該如何解決這樣的問題?

  1. 使用NIO http客戶端?這會有幫助嗎?
  2. open extra線程執行http調用? (但在Java EE中不建議使用顯式線程的bean)
  3. 某些異步http客戶端?有沒有這樣的庫?他們不使用線程?

回答

0

使用基於NIO的客戶端無法解決您的連接和目標主機太慢的事實。句號。這聽起來像你有一個可以通過其他方法來解決一個基本問題:

  • 最終連接超時。只有當你的客戶可能失敗時纔可行。
  • 增加併發度,同時運行的客戶端連接數。這似乎是對我來說最合乎邏輯的一步。
相關問題