2012-08-10 89 views
5

我們有一個使用SignalR更新客戶端UI的應用程序,目前該應用程序託管在我們維護的IIS上,我們的客戶直接與我們保持聯繫。使用主動/主動粘滯會話的SignalR和負載平衡

然而,我們正在將其整合到整個企業範圍內的框架中,我們的應用程序將保留在自身內部,但是我們將繼續託管應用程序,但是登陸我們網頁的任何人都會通過我們所知道的是「每個區域設置爲2個網關服務器的負載平衡策略爲主動/主動與粘滯會話」

我的問題是,當SignalR決定選擇長輪詢作爲傳輸協議並以某種方式連接時,我們會遇到任何問題被丟棄?

對不起,但我真的沒有任何關於負載平衡的知識。

任何幫助都非常讚賞。

回答

5

好吧,假設你真的使用「粘性」會話,那麼連接丟失應該無關緊要,因爲下一個請求應該返回到同一個底層服務器,因爲粘滯性。畢竟,粘性會話都是關於如何在一些請求過程中保持HTTP的標準請求/響應模型回到同一臺服務器。所以,由於長時間輪詢只不過是一個長時間/流式響應的標準請求,它應該很好地與標準的粘性會話實現集成在一起。

您需要考慮的是:如果由於失敗或維護而導致服務器A丟失,會發生什麼情況?如果您沒有使用擴展的消息總線解決方案(Redis,Azure SB),則可能會在從服務器A轉換到服務器B時丟失/丟失消息。

+0

感謝您的解釋,關於您的問題,如果我要求SignalR重新連接「斷開」,仍然會出現問題?當然,重新銜接的時間應該已經完成​​。 – MaYaN 2012-08-10 18:12:50

+1

如果負載均衡器正在做它的工作,你應該重新連接到服務器B.我只是說,你可能會失去一個重要的信息,應該從服務器A發送,但不是因爲它死亡/被採取它可以發送前離線。如果它只是某種聊天應用程序,那不是什麼大問題。 – 2012-08-10 18:41:10

+0

嘿!是的,這實際上是值得與有關部門調查的好點,因爲我們承受不起任何信息。謝謝你的幫助 :-) – MaYaN 2012-08-10 22:24:57