2012-02-07 70 views
2

我們有一個REST Web服務,它接收來自外部系統的請求並相應更新我們的數據庫。我正在尋求爲請求提供緩存/排隊解決方案,因爲我們最近遇到了一些數據庫服務器挑戰,並且在數據庫服務器出現故障時丟失了一些消息。JMS排隊的替代方案

在開始構建一個簡單的持久性基於文件的隊列之前,我想查看是否有任何JMS的替代方案,因爲它在我們的環境中受到限制。

當前平臺: 的Jboss 4.3 RichFaces的3.3 春3.0.5 的RESTEasy

** ** UPDATES

每低於skaffman的問題,我的集羣,交易要求等

  • 集羣:我們的web和app服務器都是集羣化的,因此隊列需要能夠處理來自所有集羣節點的項目。但是,我們的提交基本上是原子的,所以排序和同步問題極少。線程和集羣安全性並不是真正的因素。每個集羣上的獨立/獨立隊列就足夠了。

  • 交易:同樣,由於我們數據的原子性,事務性需求在每個單獨請求之外是最小/不需要的。

  • 安全性:適度關注,但我會預料到要由我們的常規Web服務安全來處理。除了Web應用程序本身,我不會預測任何對隊列的讀寫。只有在大批量或無法使用數據庫的情況下才需要這樣做。

感謝,

邁克

+0

您對於轉換,集羣和安全有什麼要求? – skaffman 2012-02-07 16:15:55

+0

爲什麼不JMS? – anubhava 2012-02-07 16:30:29

+0

@anubhava - 好問題。我試圖找出細節,但一般的說法是,它被禁止/限制在我們的技術棧中,並且不會在Web環境中被允許,沒有例外。 – 2012-02-07 18:47:44

回答

0

因爲我們沒有使用隊列(HornetQ的),但被集成在戰爭和部署在Tomcat的,因爲客戶不希望的Weblogic或JBoss應用一個項目服務器,但是如果您的限制策略轉到您的應用程序架構,那麼這種解決方案將被禁止。

對於另一個項目,我們沒有使用任何JMS實現,我們通過使用消息數據庫和spring-integration frameworkService Activator進行異步實現來消費事件。 這樣,任何消息發佈者只是在數據庫表中插入一行,並且服務激活器觸發事件​​並調用任何其他服務(Spring,Web服務等)。