Partager via


Cohérence en temps réel

En raison de la nature de certains systèmes distribués, il est difficile d’appliquer la cohérence en temps réel entre les demandes de manière implicite. Une solution consiste à autoriser la prise en charge du protocole sous la forme de plusieurs jetons de synchronisation. Les jetons de synchronisation sont facultatifs.

Demande initiale

Pour garantir la cohérence en temps réel entre les différentes instances et demandes de client, utilisez des en-têtes de demande et réponse Sync-Token facultatifs.

Syntaxe :

Sync-Token: <id>=<value>;sn=<sn>
Paramètre Description
<id> ID de jeton (opaque)
<value> Valeur de jeton (opaque). Autorise une chaîne encodée en base64.
<sn> Numéro de séquence du jeton (version). Une valeur plus élevée correspond à une version plus récente du même jeton. Permet une meilleure concurrence et une mise en cache client. Le client peut choisir d’utiliser uniquement la dernière version du jeton, car les versions de jeton sont inclusives. Ce paramètre n’est pas requis pour les demandes.

response

Le service fournit un en-tête Sync-Token avec chaque réponse.

Sync-Token: jtqGc1I4=MDoyOA==;sn=28

Demandes suivantes

Il est garanti que toute demande ultérieure recevra une réponse cohérente en temps réel par rapport au Sync-Token fourni.

Sync-Token: <id>=<value>

Si vous omettez l’en-tête Sync-Token de la demande, il est possible que le service réponde avec des données mises en cache pendant une brève période de temps (jusqu’à quelques secondes) avant d’être réglé en interne. Ce comportement peut provoquer des lectures incohérentes si des modifications ont eu lieu immédiatement avant la lecture.

Jetons de synchronisation multiples

Le serveur peut répondre avec plusieurs jetons de synchronisation à une demande individuelle. Pour conserver la cohérence en temps réel pour la demande suivante, le client doit répondre avec tous les jetons de synchronisation reçus. Plusieurs valeurs d’en-tête doivent être séparées par des virgules.

Sync-Token: <token1-id>=<value>,<token2-id>=<value>