這個問題的一部分是我甚至不知道我到底需要問什麼,所以我會從情況開始,然後從那裏開始工作。網絡農場的服務總線(也許?)
我正在處理的一個項目涉及通過aspComet庫使用COMET。該方案的用例有點像協作幻燈片。一個人運行大部分,一個或多個參與者能夠執行某些操作。在屏幕上執行操作時的低延遲時間
以前,它只是在一臺服務器上運行。現在,我們想要擴展一點,更多的是因爲性能方面的可靠性。所以,我們在Rackspace的雲中有一些盒子和所有有趣的東西。
我從一開始就知道我需要對COMET的工作方式做一些改變,因爲同一個「show」中的不同人可能在不同的服務器上,我也無法知道什麼「表演」,直到他們已經到達現場後才屬於他們。
我最初使用WCF Mesh提供程序解決了這個問題,但沒有很好的文檔記錄,現在我遇到了將消息分發給它的問題,有時會丟失或延遲(我不是100%確定的),但它把COMET的長期民意調查搞砸了,並以相當奇怪的方式打破了事情(點擊一個按鈕可能觸發一個事件,或者它會掛起10秒{長輪詢持續時間},而沒有實際做任何事情)。
更多的研究讓我相信.Net服務總線提供商可能會做我所需要的。但是,我找不到實例,將覆蓋我需要什麼:
- 無單一故障點(外的數據庫)
- 同齡人沒有硬編碼。
- 近實時(無輪詢,基於將是最好的事件)
我的理想的解決方案將涉及,當一臺服務器出現時,它可以讓其他服務器知道它的存在(即使它在短短的一行一個表格),並且他們可以開始在彼此之間發送廣播消息,每個服務器既是發佈者又是訂閱者。這就是我在WCF Mesh提供程序中所擁有的,但是我對該代碼不太有信心。
任何人都可以用這個指向正確的方向嗎?即使在服務總線提供商的文檔中尋找合適的條款也適用於此。還是服務巴士不是我想要的?在這一點上,我會解決在每個Web服務器上設置Jabber服務器並使用它,如果它可以適應我的限制。
我建議使用RabbitMQ排隊您的數據,並使用HTTP Streaming,如果您想近實時檢索數據而不必長時間輪詢 – rpgmaker 2011-12-29 18:04:02