2010-10-08 20 views
0

我正在考慮如何識別使用wcf/web服務的移動設備上的應用程序的服務器。 (1)我預計一切都會順利,我需要不時地在主機之間遷移服務器來處理負載。我希望能夠在沒有服務中斷的情況下做到這一點。 (2)我還預計,一切順利,我希望通過分離網站託管和wcf/web服務託管來提高可擴展性,這需要在客戶端進行尋址更改。在應用證明獲得支持之前,服務器部署將在同一個域上共享。改進此模式以處理移動應用程序如何知道如何找到它的服務器

爲此一目瞭然地重新發布客戶端看起來很複雜,因爲您無法強制更新消費者,並且不區分數據連接/服務器關閉和移動的服務器。

我在想這將會是一個解決的問題,所以我認爲它可以從社區中反彈出更好的想法。

我到目前爲止提出的如下。

  1. 客戶端需要主URL和輔助URL來引用wcf/web服務。這迎合了主機提供者的變化。舊主機可以在交接期間繼續運行該服務。當成功部署到新主機時,可以禁用輔助/舊主機。 wcf/web服務本質上是無狀態的,所以可以簡化一些事情。

  2. 按照定期的時間間隔,客戶端將啓動一項服務,請求提供主要和次要URL,然後對其進行緩存。這個未來證明了客戶端能夠(在一段時間內)通過輔助URL後面的服務指示接受新的URL以供將來使用,同時主URL服務請求在新URL處。一旦輔助服務指向新的主服務器,以下來自主服務器的定期更新將更新緩存的輔助URL。

我錯過了什麼?也許它可以更簡單?

回答

1

DNS可能是將服務器隱藏到新地址的方式。當你改變你的服務器時,你更新你的DNS記錄。將新服務器放置好,一旦啓動並運行,請更新DNS記錄。這就是所有要做的事情,除非我錯過了一些東西。

編輯,以反映的意見:

可以肯定的是,變化是無縫,您可以將DNS條目的TTL降低到非常低的值,以確保傳播速度快。例如,如果在切換服務器之前將TTL更改爲5分鐘,則確保在更新DNS條目5分鐘後關閉第一臺服務器。

所以你只需要一個URL,這個URL永遠不需要改變。它同時滿足您的第一個和第二個要求。沒有必要重新發明輪子。

+0

嗨Guillaume,謝謝你的迴應。這可能足以消除對主要/次要網址的需求......我只是想知道這樣的移交是否會毫無用處?..也許你說當DNS改變傳播時,我可以運行這兩種服務並實現無中斷的移交。在這種情況下,我只是在(2)中改變了域的情況。 – 2010-10-08 09:27:59

+0

聽起來很不錯。 DNS是解決這個問題的方法。域名保持不變 - 它們指向可以改變的地方。 – 2010-10-08 10:21:04

+0

謝謝Matt,我同意第一個要求,但要清楚這裏有兩個要求。第二個需要改變的網址/域名至今我已經能夠確定。 – 2010-10-08 10:26:05

相關問題