Plusieurs discours sur un seul hôte Redis

Une configuration que j’utilise implique plusieurs conteneurs Discourse fonctionnant derrière un proxy inverse sur un seul serveur. Pendant un temps, j’utilisais

DISCOURSE_REDIS_DB: x

pour permettre à plusieurs serveurs Discourse d’utiliser un seul serveur Redis. Principalement parce que je suis paresseux et que je n’aime pas suivre attentivement quel serveur utilise quel numéro, je voulais augmenter le nombre de bases de données Redis dans Redis à plus de 16. Lorsque j’ai posé la question, la réponse que j’ai obtenue suggérait qu’il est très mauvaise idée d’utiliser redis_db pour avoir plusieurs sites sur un seul Redis. Et depuis, j’ai reconfiguré les choses pour lancer un Redis séparé pour chaque site (ce qui les rend plus faciles à gérer car je peux utiliser un nom pour eux).

Mais cela semble un peu idiot. Et maintenant que je regarde, je vois ceci :

Alors, je me demandais s’il était acceptable d’utiliser redis_db ou si chaque Discourse avait besoin de son propre Redis.

1 « J'aime »

Chaque Discourse a besoin de son propre serveur Redis totalement séparé car le bus de messages utilise Redis Pub/Sub, qui est partagé entre toutes les bases de données d’un serveur Redis.

Si vous exécutez Discourse dans une configuration multisite, nous ajoutons automatiquement un préfixe spécifique au site à toutes les clés et à tous les canaux de publication/abonnement. Ce même préfixage n’est pas disponible pour les installations standard « à site unique ».

4 « J'aime »

Parfaitement compréhensible. Merci beaucoup pour votre explication claire !

2 « J'aime »

Cela semble être une grave erreur d’architecture. Pourriez-vous s’il vous plaît rendre possible le préfixage des clés Redis dans une installation à site unique afin que nous puissions avoir plusieurs installations de Discourse sur un seul hôte Redis ? À moins que je ne comprenne mal quelque chose, il s’agit d’une solution très simple qui réduirait considérablement la complexité et la surcharge pour les personnes qui ont besoin d’exécuter plus d’un Discourse.

1 « J'aime »