Una configuración que utilizo es tener varios contenedores de Discourse ejecutándose detrás de un proxy inverso en un solo servidor. Durante un tiempo, utilicé
DISCOURSE_REDIS_DB: x
para permitir que varios servidores de Discourse usaran un solo servidor de Redis. En gran parte porque soy perezoso y no me gusta llevar un registro cuidadoso de qué servidor está usando qué número, quería aumentar el número de bases de datos de Redis en Redis a más de 16. Cuando pregunté al respecto, la respuesta que obtuve sugirió que es una muy mala idea usar redis_db para tener varios sitios en un solo Redis. Y desde entonces, he reconfigurado las cosas para iniciar un Redis separado para cada sitio (lo que los hace más fáciles de seguir ya que puedo usar un nombre para ellos).
Pero esto parece un poco tonto. Y ahora que lo veo, veo esto:
Entonces, me preguntaba si está bien usar redis_db o si cada Discourse necesita su propio Redis.
Cada Discourse necesita su propio servidor Redis totalmente separado porque message-bus utiliza Redis Pub/Sub, que se comparte entre todas las bases de datos de un servidor Redis.
Si ejecuta Discourse en una configuración multisitio, agregamos automáticamente un prefijo específico del sitio a todas las claves y canales de pub/sub. Ese mismo prefijo no está disponible para las instalaciones estándar de ‘un solo sitio’.
Parece ser una grave falta de diseño arquitectónico. ¿Podrían hacer posible el prefijado de claves de Redis en una instalación de un solo sitio para que podamos tener múltiples instalaciones de Discourse en un solo host de Redis? A menos que esté entendiendo algo mal, esta es una solución muy simple que reduciría en gran medida la complejidad y la sobrecarga para las personas que necesitan ejecutar más de un Discourse.