Konzistence v reálném čase
Vzhledem k povaze některých distribuovaných systémů je obtížné implicitně vynucovat konzistenci požadavků v reálném čase. Řešením je povolit podporu protokolu ve formě více synchronizačních tokenů. Synchronizační tokeny jsou volitelné.
Počáteční požadavek
Pokud chcete zajistit konzistenci různých instancí a požadavků v reálném čase, použijte volitelné Sync-Token
hlavičky požadavků a odpovědí.
Syntaxe:
Sync-Token: <id>=<value>;sn=<sn>
Parametr | Popis |
---|---|
<id> |
ID tokenu (neprůspatné) |
<value> |
Hodnota tokenu (neprůselná). Umožňuje řetězec kódování base64. |
<sn> |
Pořadové číslo tokenu (verze) Vyšší znamená novější verzi stejného tokenu. Umožňuje lepší souběžnost a ukládání do mezipaměti klienta. Klient se může rozhodnout použít pouze poslední verzi tokenu, protože verze tokenů jsou inkluzivní. Tento parametr se pro požadavky nevyžaduje. |
Odpověď
Služba poskytuje hlavičku Sync-Token
s každou odpovědí.
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
Následné požadavky
U všech následných požadavků se zaručuje konzistentní odpověď v reálném čase ve vztahu k poskytnutému Sync-Token
požadavku .
Sync-Token: <id>=<value>
Pokud v požadavku vynecháte hlavičku Sync-Token
, může služba během krátké doby (až několik sekund) reagovat s daty uloženými v mezipaměti, než se interně vyřeší. Toto chování může způsobit nekonzistentní čtení, pokud došlo ke změnám bezprostředně před čtením.
Více synchronizačních tokenů
Server může na jeden požadavek odpovědět několika synchronizačními tokeny. Pokud chcete zachovat konzistenci v reálném čase pro další požadavek, musí klient odpovědět všemi přijatými tokeny synchronizace. Více hodnot záhlaví musí být oddělené čárkami.
Sync-Token: <token1-id>=<value>,<token2-id>=<value>