Spójność w czasie rzeczywistym
Ze względu na charakter niektórych systemów rozproszonych spójność między żądaniami w czasie rzeczywistym jest trudna do wymuszenia niejawnie. Rozwiązaniem jest umożliwienie obsługi protokołu w postaci wielu tokenów synchronizacji. Tokeny synchronizacji są opcjonalne.
Żądanie początkowe
Aby zagwarantować spójność w czasie rzeczywistym między różnymi wystąpieniami klienta i żądaniami, użyj opcjonalnych Sync-Token
nagłówków żądań i odpowiedzi.
Składnia:
Sync-Token: <id>=<value>;sn=<sn>
Parametr | Opis |
---|---|
<id> |
Identyfikator tokenu (nieprzezroczystych) |
<value> |
Wartość tokenu (nieprzezroczyste). Zezwala na ciąg zakodowany w formacie base64. |
<sn> |
Numer sekwencji tokenów (wersja). Wyższa oznacza nowszą wersję tego samego tokenu. Umożliwia lepszą współbieżność i buforowanie klientów. Klient może użyć tylko ostatniej wersji tokenu, ponieważ wersje tokenów są włącznie. Ten parametr nie jest wymagany dla żądań. |
Reakcja
Usługa udostępnia Sync-Token
nagłówek z każdą odpowiedzią.
Sync-Token: jtqGc1I4=MDoyOA==;sn=28
Kolejne żądania
Każde kolejne żądanie jest gwarantowane w czasie rzeczywistym spójnej odpowiedzi w odniesieniu do podanego Sync-Token
elementu .
Sync-Token: <id>=<value>
Jeśli pominiesz Sync-Token
nagłówek z żądania, usługa może odpowiadać na buforowane dane w krótkim czasie (do kilku sekund), zanim zostanie rozliczenie wewnętrzne. To zachowanie może spowodować niespójne odczyty, jeśli zmiany wystąpiły bezpośrednio przed odczytaniem.
Wiele tokenów synchronizacji
Serwer może odpowiadać za pomocą wielu tokenów synchronizacji dla pojedynczego żądania. Aby zachować spójność w czasie rzeczywistym dla następnego żądania, klient musi odpowiedzieć przy użyciu wszystkich odebranych tokenów synchronizacji. Wiele wartości nagłówków musi być rozdzielonych przecinkami.
Sync-Token: <token1-id>=<value>,<token2-id>=<value>