Alta disponibilidad
IBM Cloud® Messages for RabbitMQ es un servicio gestionado de mensajes en la nube que está completamente integrado en los entornos de IBM Cloud. El intermediario de mensajes, el almacenamiento y la infraestructura de soporte se ejecutan en IBM Cloud.
Configuración del clúster de RabbitMQ
Messages for RabbitMQ proporciona características de réplica, migración tras error y alta disponibilidad para proteger sus bases de datos y los datos de mantenimiento de la infraestructura, de actualizaciones y de errores. Los despliegues contienen un clúster con tres nodos donde los usuarios, los hosts virtuales, las colas, los intercambios, los enlaces, los parámetros de tiempo de ejecución y otros estados distribuidos se comparten entre los tres nodos. Si un nodo falla, se suprime o se reinicia y, a continuación, se vuelve a sincronizar ese mismo nodo o un nodo nuevo con el clúster. El despliegue permanece disponible para procesar mensajes durante la resincronización, aunque es un proceso que requiere mucha memoria. Para obtener más información, consulte la página Rendimiento .
Consideraciones sobre el recurso de RabbitMQ
Como intermediario de mensajes implementado en Erlang, RabbitMQ depende a fondo de los núcleos de CPU para planificar sus procesos. Si hay muy pocos núcleos disponibles para ejecutar estos procesos, el rendimiento puede verse afectado. Si hay demasiados pocos recursos de CPU disponibles para procesarlos, RabbitMQ cierra las conexiones. Considere cpu-contention y elija una configuración de recursos que proporcione suficientes núcleos de CPU para RabbitMQ ejecutándose como un sistema de producción. Tener recursos de CPU dedicados en el despliegue de RabbitMQ también evita el impacto de vecinos ruidosos en los recursos, como la CPU y la memoria.
Configuración de cola de alta disponibilidad
El host virtual predeterminado está configurado para duplicar sus colas en todos los nodos del clúster para proporcionar alta disponibilidad. La alta disponibilidad
en RabbitMQ la establece la política. Puede ver la política en la interfaz de usuario de gestión de RabbitMQ , la API HTTPS o rabbitmqadmin
cuando inicie sesión con la cuenta de administrador.

Puede modificar la alta disponibilidad añadiendo una política y asignándole una prioridad más alta, pero la política predeterminada no se puede eliminar. Los hosts virtuales adicionales no tienen una política de alta disponibilidad establecida de forma predeterminada. Debe añadir una política de alta disponibilidad a todos los hosts virtuales.
Colas de quórum
La alta disponibilidad se puede gestionar con colas de quórum. La utilización de colas de quórum puede mejorar significativamente la alta disponibilidad de un despliegue, específicamente en los casos en que las colas existen a largo plazo y su durabilidad es más importante que otras características. Las colas de quórum gestionan la alta disponibilidad manteniendo un quórum que utiliza el algoritmo de consenso Raft, y la primaria actual y la mayoría de las réplicas coinciden en el contenido de la cola. Si sucede algo en el nodo primario, las réplicas eligen el siguiente primario.
La documentación de RabbitMQ Documentation describe los casos de usoy cómo implementar colas de quórum en el clúster.
Colas duplicadas
Mientras que las colas de quórum son las preferidas, la configuración predeterminada en RabbitMQ 4, y anterior, utiliza colas duplicadas. Las colas duplicadas se configuran con cada cola que contiene un primario en un miembro del clúster y existen duplicaciones de las colas en los otros miembros del clúster. Los mensajes publicados en la cola primero van a la primaria y después se replican en las duplicadas. Si sucede algo en el nodo primario, el duplicado sincronizado más antiguo se promociona a primario.
Alta disponibilidad para su aplicación
Las aplicaciones que se comunican a través de redes y servicios en la nube están sujetas a errores de conexión transitorios. Además, debido a que Messages for RabbitMQ es un servicio gestionado, se realizan actualizaciones periódicas y mantenimiento de base de datos como parte de sus operaciones normales. Estas operaciones pueden provocar un breve parpadeo en la conectividad, por lo que puede notar una breve interrupción en la conexión.
Tiene que diseñar las aplicaciones de modo que puedan manejar una pérdida temporal de conectividad con el despliegue o con IBM Cloud.
La documentación de RabbitMQ incluye una visión general de qué tipo de acciones puede realizar para que sus aplicaciones sean robustas y estables en la Lista de comprobación de producción, en la sección Aplicaciones. Incluye algunos consejos generales de gestión de conexiones y recuperación.
RabbitMQ y los controladores de RabbitMQ admiten varias características que le permiten diseñar una aplicación resiliente.
- Confirmaciones de consumidor y de publicador : para asegurarse de que los mensajes se envían y se reciben, y para captar y recuperarse de situaciones en las que no lo son.
- Pulsaciones y Keepalives TCP -utilizando los parámetros de latido y estado activo cuando la aplicación se conecta puede detectar e impedir conexiones zombie.
- Notificaciones de cancelación de consumidor : detecta y maneja instancias en las que un consumidor deja de consumir de una cola.
Messages for RabbitMQ también se suministra con el plug-in Shovel. Los Shovels pueden manejar la conexión, la lectura y la escritura de mensajes y también los fallos de conexión y la reedición.
No se esperan faltas de disponibilidad de base de datos ni interrupciones de conexión de varios minutos. Abra una incidencia de soporte con detalles si experimenta periodos sin conectividad de más de un minuto para que lo podamos investigar.
Límites de conexión de Messages for RabbitMQ
Cuando se suministra, Messages for RabbitMQ tiene cuatro puntos finales diferentes y establece el número máximo de conexiones por nodo y para cada punto final de la manaera siguiente:
- HTTPS: 1024 x 3 nodos = 3072
- AMQPS: 20000 x 3 nodos = 60000
- MQTTS: 20000 x 3 nodos = 60000
- STOMPS: 20000 x 3 nodos = 60000
Si el número de conexiones con la base de datos supera el límite de conexiones, las nuevas conexiones fallan y devuelven un error.
Supervisión de la alta disponibilidad
Messages for RabbitMQ dispone de integración en IBM Log Analysis por lo que puede ver registros activos e históricos.
Comprobar los registros del despliegue le ayuda a supervisar el estado de la alta disponibilidad y la replicación del despliegue. Si tiene problemas persistentes con las aplicaciones, los registros también pueden proporcionar información sobre lo que está sucediendo en las bases de datos cuando hay anomalías de conexión u otras interrupciones.
Guía de fiabilidad de RabbitMQ
La documentación de RabbitMQ proporciona una excelente Guía de fiabilidad que cubre una amplia gama de temas relacionados con la seguridad de que el clúster funciona y los datos son resistentes. También describe características que puede utilizar como usuario para supervisar el despliegue, las conexiones, las colas y los mensajes para que todo funcione perfectamente.
Recursos de alta disponibilidad, recuperación tras desastre y SLA
Los despliegues de Messages for RabbitMQ se ajustan las condiciones de HA, DR y SLA de IBM Cloud Databases.