Sdílet prostřednictvím


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-Tokenpož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>