簡體   English   中英

使用JMS或Redis集群Spring Web應用程序

[英]clustering a spring web application using JMS or Redis

這可能是一個愚蠢的問題,但是請握緊槍,因為我做了很多研究,但是這一點並沒有引起我的注意。

假設我有一個spring mvc Web應用程序,並且用戶可以使用websockets或任何其他機制來訂閱它……我們得到一個連接對象,例如HttpSession,DeferredResult,AtmosphereResource等,然后我們制作一個本地地圖並存儲此暫停的連接...現在,當我們需要發送更新時,我們只需從內存映射中進行選擇並發送更新即可。

現在,如果我有一個tomcat集群,並且用戶可以連接到任何節點怎么辦,他們如何共享這些暫停的連接? 這不是會話復制問題,我不在會話中存儲任何內容,我只需要一種方法即可連接回客戶端...

如果這是錯誤的思維方式,那么如何使集群環境正常工作? 用戶連接到任何節點,當該節點發生故障時會發生什么?

非常感謝任何幫助,我為此感到非常絕望,因為我們的項目處於關鍵階段。

您似乎正在嘗試一次解決許多問題:

  • 如何在集群環境中管理Websocket連接?
  • 如何在服務器端管理心跳,(斷開)連接事件?
  • 如何在客戶端管理心跳,(斷開)連接事件?
  • 如何使用Spring有效地驅動您的消息驅動的應用程序?
  • 和更多...

Spring 4引入了具有非常酷的功能的websocket支持 ,可以解決許多問題。 在集群環境中,Spring建議使用一個MQ實例(支持STOMP),例如RabbitMQ。 此MQ將管理主題訂閱和消息分發,而每個tomcat將管理客戶端連接。

有兩個示例應用程序展示了其工作原理: 組合應用程序聊天應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM