Prise en charge des modèles de cluster [Haute Disponibilité] [Redondance]

Je propose d’ajouter ces fichiers au dossier des modèles :

  • postgres.master.yml
  • postgres.slave.yml
  • redis.master.yml
  • redis.slave.yml

De cette manière, le clustering de Discourse, ainsi que toutes les complications liées à ce sujet, disparaîtront.

À ma connaissance, le conteneur Redis ne peut pas être dupliqué en raison des transactions uniques du bus de messages, mais il semble pouvoir être répliqué.

Avantages architecturaux ?

  1. Possibilité d’initialiser (web.template.yml + web.template.yml + redis.master.yml) sur le nœud maître, et uniquement (web.template.yml + postgres.slave.yml + redis.slave.yml) sur le nœud esclave, SANS devoir se référer au nœud maître. Cela réduit considérablement la charge et exploite la puissance de l’équilibreur de charge Nginx placé devant l’ensemble.

  2. L’ambitieuse prise en charge d’une section de clustering dans l’interface d’administration deviendra réalisable !

Discourse est sans doute l’application open source la plus avancée jamais créée. Merci à l’équipe derrière cette technologie de pointe.

Cela serait utile pour la sauvegarde en streaming, même si aucune bascule haute disponibilité (HA) n’est configurée. Avez-vous créé une PR avec le contenu suggéré pour de tels fichiers ?

Comment prévoyez-vous de gérer les mises à jour de la base de données vers de nouvelles versions majeures de PostgreSQL lors du déploiement sur plusieurs nœuds de cette manière ?