La réplication SQL n'efface pas les caches de CD sur la cible distante

Sep 29 2020

Nous avons une situation d'édition multi-cd avec laquelle je peux utiliser un peu d'aide.

Nous sommes dans une situation Azure PAAS, avec le serveur CM et 1 CD situés aux États-Unis. Nous avons également un serveur de CD et une base de données SQL en Chine (utilisant Azure China / 21 Vianet). En raison de la tolérance aux pannes, nous avons décidé d'utiliser la réplication pour déplacer les données vers la Chine. Nous avons donc configuré une cible de publication aux États-Unis appelée web_china et pouvons publier dans cette base de données. Nous utilisons ensuite la réplication pour copier les données des États-Unis vers la Chine.

Le problème est que la réplication peut prendre jusqu'à 5 minutes et à ce moment-là, l'événement publish: end: remote a déjà été traité par le serveur de CD chinois. Ainsi, même si les données se trouvent dans la base de données web_china en Chine, en raison de la mise en cache (?), Les modifications ne sont pas visibles. Si nous publions l'article une seconde fois (puisqu'il est déjà en Chine), il apparaît sur le site.

J'ai essayé d'ajouter une tâche qui s'exécute en Chine et efface régulièrement le cache. Il efface à la fois le cache Html, le cache MVC et le cache des paramètres de rendu. Cependant, même après l'exécution, l'article n'est pas visible en Chine. J'ai ensuite essayé de supprimer tous les caches, mais cela a mis le site à l'arrêt.

Y a-t-il un autre cache que je devrais effacer pour que les modifications publiées apparaissent?

Ou est-ce que la meilleure idée est de simplement passer à l'utilisation du service de publication, qui est un processus beaucoup plus tolérant aux pannes.

Réponses

MarkGibbons Oct 22 2020 at 16:48

Un excellent moyen rapide pris en charge est documenté ici à l' aide d'Azure SQL Geo Replication. L'idée est:

  • La base de données Web Sitecore est placée dans un groupe de réplication géographique
  • Vous avez besoin d'une nouvelle base de données "partagée" à laquelle toutes les instances Sitecore se connectent - uniquement pour les tables File d'attente d'événements, Propriétés et Tâches.
  • De cette façon, vos données de contenu sont répliquées avec la puissance d'Azure SQL, mais l'effacement du cache et d'autres événements peuvent toujours se produire.