即時一致性
由於某些分散式系統的本質,要求之間的即時一致性難以隱含地強制執行。 解決方案是允許以多個同步權杖的形式支援通訊協定。 同步權杖是選用的。
初始要求
若要保證不同用戶端執行個體與要求之間的即時一致性,請使用選用的 Sync-Token
要求和回應標頭。
語法:
Sync-Token: <id>=<value>;sn=<sn>
參數 | 描述 |
---|---|
<id> |
權杖識別碼 (不透明) |
<value> |
權杖值 (不透明)。 允許 base64 編碼字串。 |
<sn> |
權杖序號 (版本)。 越高表示相同權杖的版本越新。 允許更好的並行和用戶端快取。 用戶端可以選擇只使用權杖的最後一個版本,因為權杖版本是內含的。 要求不需要此參數。 |
回應
服務會為每個回應提供一個 Sync-Token
標頭。
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
後續要求
任何後續要求是有關所提供 Sync-Token
的保證即時一致回應。
Sync-Token: <id>=<value>
如果您省略要求中的 Sync-Token
標頭,服務可能會在內部解決之前短時間內回應快取資料 (最多幾秒鐘)。 如果讀取之前立即發生變更,此行為可能會導致不一致的讀取。
多個同步權杖
伺服器可能會回應單一要求的多個同步權杖。 若要保留下一個要求的即時一致性,用戶端必須回應所有收到的同步權杖。 多個標頭值必須以逗號分隔。
Sync-Token: <token1-id>=<value>,<token2-id>=<value>