0
我有一個由一箇中央服務器,許多移動客戶端和許多工作服務器組成的系統。每個工作服務器都有自己的數據庫,可能位於客戶基礎設施上(當他購買本地安裝時)。如何將持久性事件從中央服務器推送給其他人?
在我目前的設計中,移動客戶端向中央服務器發送更新,中央服務器更新其數據庫。工作人員服務器定期拉取中心以獲取更新的信息。這種「拉動模式」創造了很多要求,但仍然不夠完善,因爲員工經常使用過時的信息。
我想要一個「推式模型」,中央服務器可以將更新「發佈」到「某處」,這會保留最新版本的數據。然後工作人員可以「訂閱」這個「某處」並始終保持最新狀態。
的主要問題是:
- 一名工人服務器可能處於脫機狀態時更新發生。當它恢復在線時,它應該收到它丟失的更新。
- 可能會創建一個新的工作服務器,並且需要獲取更新的數據,即使是存在之前發佈的數據。
獎金點:
- 不需要管理該 「的地方」 自己。我的應用程序部署在AWS,所以如果有任何我可以用來實現的服務組合,那就太棒了。我發現的一切都有限的時間數據保留。
我並沒有考慮直接推送,而是在中介的幫助下更像pub/sub。所以中央需要只發送一次每個更新。工作人員會立即收到更新,但也可以收到在離線或尚未存在時發佈的所有內容。但後來我需要一個帶有永久保存的消息的pub/sub或類似的東西。它看起來更具擴展性。你怎麼看? –
這不是純粹的pub/sub模型,因爲脫機客戶端需要檢索不同的消息。例如,Amazon SNS將發送消息(如果需要,將重試幾次),但對於脫機客戶端來說還不夠。它可以將消息推送到隊列中供以後檢索,但客戶端需要輪詢隊列。所以,很難混合「推送」和「離線」功能。拉/投票肯定是一個更簡單的解決方案。但是,也許其他StackOverflovians有另一種提供? –