2013-08-27 60 views
3

我有一個運行在Amazon AWS雲中的Java/Spring應用程序。 我的服務器實例正在使用負載均衡,並運行與Tomcat應用程序服務器相同的Linus OS映像。 它們也連接到S3作爲共享文件系統(s3fs)和RDS數據庫。AWS的最佳JMS實施

我的問題是要確保不同應用程序的狀態是同步的。今天,同步點是數據庫,但是當需要內存緩存時,會出現不同步問題。

我想使用的解決方案是在應用程序之間建立消息傳遞系統。出於具體原因,我無法使用Amazon SQS服務,那麼JMS似乎符合我的需求。經過一番閱讀,HornetQ似乎也是一個很好的實現。一旦應用程序狀態發生變化,它就會將更改傳達給所有其他應用程序每個應用程序都是同一隊列的生產者和消費者。

由於我們處於動態系統中,服務器和IP會自動創建和刪除,實例的自動發現似乎是最佳的解決方案。

但是在AWS中,廣播是不可能的!

對於HornetQ,我看到了一種圍繞其使用JGroups的工作。但對我而言,這是調查和學習的第二個框架。兩次工作。並沒有更多的開箱即用的解決方案。

您的意見是?有沒有人已經建立了類似需求的解決方案? 也許還有其他現成的解決方案?

在此先感謝您的答案!

+1

像memcached這樣的共享緩存可以在您的情況下工作嗎? – datasage

+1

您正在詢問一個緩存解決方案,而JMS只是同步多個緩存實例的一種可能性。所以另一種可能性是使用鍵/值存儲(redis,memcached,...),但我會看看使用JGroups的Inifispan。你的問題很有趣,但是對於SO來說有點過於寬泛。 – Beryllium

+0

@datasage如果在AWS系統中工作(無廣播),memcached可以成爲我的解決方案,並處理實例的自動創建/銷燬。在這些要求下,memcached(輕鬆)可以在羣集中配置嗎? – Asterius

回答