我有一個服務器 - 客戶端應用程序,其中應用程序的一般用途是讓一個客戶端同時連接到多個服務器。客戶端請求每臺服務器開始在服務器本地開始記錄數據,從DateTime
某些TimeSpan
開始。提出請求後,客戶端與服務器斷開連接。然後,一段時間後,客戶端重新連接到服務器以檢索記錄的數據。爲了讓客戶正確解析記錄的數據,所有服務器之間的時間參考必須匹配(在某種合理的準確度內,比如說1秒)。跨多臺計算機的DateTime同步
所以我需要能夠實現在記錄期間該客戶端引用的所有服務器的同步時間。
我不能保證服務器在線(它們可能只在本地局域網上),因此我不能讓它們在UTC時間輪詢一些互聯網數據庫。我無法保證客戶在整個錄音過程中都保持連接,因此我不能讓客戶不斷地發送時間作爲參考。
我想這隻剩下一個選項:客戶端必須告訴每個服務器它認爲時間是什麼時候設置記錄,服務器必須找出當時和他們認爲時間之間的差異。然後服務器必須將該增量應用於任何記錄的數據。
我擔心這種方法。它會在很長一段時間內保持準確的時間,比如10天嗎?如果其中一臺服務器無法保持良好時間,三角洲能否隨時間漂移?
或者,有沒有更好的方法來做到這一點?
我建議你重新考慮一下你的vasic假設:你想要電腦,可能無法正確保持時間,做出基於時間的desicions。還是我得到這個錯誤? –
我完全同意。不幸的是,我無法控制安裝我的軟件的硬件。硬件有可能是壞的CMOS或者無法保持時間。在沒有互聯網連接的情況下保持準確的時間實際上並非微不足道。漂移的百分比可能會驚人地高。 –
這就是我的意思:如果你不能保證計時,你不能保證準確的時間desicions。 –