@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

middleware-instalacion-de-rabbitmq-server-3

Middleware: Instalación de RabbitMQ-Server

Middleware: Instalación de RabbitMQ-Server

RabbitMQ es una solución de mensajería middleware ampliamente utilizada para la comunicación entre aplicaciones y servicios. En esta entrada de blog, exploraremos los conceptos básicos de RabbitMQ, cómo instalarlo, y profundizaremos en casos de uso comunes, la configuración de un clúster en un entorno de alta disponibilidad y la solución de problemas comunes.

¿Qué es RabbitMQ?

RabbitMQ es un software de intermediación de mensajes (message broker) que facilita la comunicación asíncrona entre aplicaciones. Implementa el protocolo Advanced Message Queuing Protocol (AMQP), proporcionando una comunicación eficiente y desacoplada entre los productores y consumidores de mensajes.

Características clave de RabbitMQ:

  • Soporte para múltiples protocolos de mensajería (AMQP, MQTT, STOMP).
  • Distribución de mensajes basada en colas.
  • Alta disponibilidad y replicación de mensajes.
  • Escalabilidad horizontal y vertical.
  • Amplia comunidad y soporte.

Instalación de RabbitMQ-Server

Nos ponemos manos a la obra…

middleware-instalacion-de-rabbitmq-server-1

Requerimientos de Hardware para RabbitMQ

RabbitMQ es una plataforma de mensajería ligera que puede ser desplegada en una amplia gama de entornos, desde servidores dedicados hasta máquinas virtuales y contenedores. Sin embargo, para asegurar un rendimiento óptimo y una alta disponibilidad, es importante asignar los recursos adecuados de CPU, RAM y almacenamiento.

Requerimientos Mínimos

Estos requerimientos mínimos son para una instalación básica de RabbitMQ, adecuada para entornos de desarrollo o aplicaciones pequeñas.

  • CPU: 1 vCPU
  • RAM: 1 GB
  • Almacenamiento: 5 GB

Requerimientos Recomendados

Para un entorno de producción con una carga de trabajo moderada, se recomiendan los siguientes recursos:

  • CPU: 2 vCPU
  • RAM: 4 GB
  • Almacenamiento: 20 GB

Requerimientos para Altas Cargas de Trabajo

Para aplicaciones de gran escala o en entornos de alta disponibilidad, se deben considerar los siguientes requerimientos:

  • CPU: 4+ vCPU
  • RAM: 8+ GB
  • Almacenamiento: 50+ GB

Requisitos previos RabbitMQ

Antes de instalar RabbitMQ, asegúrate de tener un sistema operativo actualizado. Este tutorial cubrirá la instalación en Ubuntu 20.04.

  • Actualizar el sistema:
  • Instalar las dependencias necesarias:
    • RabbitMQ requiere Erlang, así que primero instala Erlang:
  • Agregar el repositorio de Erlang Solutions:
  • Instalar Erlang:
  • Agregar el repositorio de RabbitMQ:
  • Instalar RabbitMQ-Server:

Configuración y puesta en marcha RabbitMQ

  • Iniciar el servicio RabbitMQ:
  • Verificar el estado del servicio:
  • Habilitar el plugin de gestión: RabbitMQ incluye un panel de administración web que debe activarse manualmente.
  • Acceder al panel de administración: Por defecto, se puede acceder al panel de administración en http://IP-SERVIDOR:15672. El usuario y la contraseña predeterminados son guest/guest.

middleware-instalacion-de-rabbitmq-server-2

middleware-instalacion-de-rabbitmq-server-3

Casos de Uso Comunes RabbitMQ

RabbitMQ se utiliza en una variedad de escenarios donde la mensajería asíncrona y desacoplada es crucial. Algunos casos de uso comunes incluyen:

  1. Microservicios: RabbitMQ facilita la comunicación entre microservicios, permitiendo que los servicios se comuniquen de manera asíncrona y gestionen cargas de trabajo de forma independiente.
  2. Colas de Tareas: En aplicaciones web y móviles, RabbitMQ se utiliza para gestionar y procesar tareas en segundo plano, como el procesamiento de imágenes, envío de correos electrónicos y análisis de datos.
  3. Balanceo de Carga: RabbitMQ distribuye las solicitudes de trabajo entre varios trabajadores, lo que ayuda a balancear la carga y mejorar el rendimiento general del sistema.
  4. Eventos y Notificaciones: RabbitMQ se utiliza para enviar eventos y notificaciones en tiempo real, permitiendo a las aplicaciones reaccionar a cambios en el sistema de manera eficiente.

Configuración de un Cluster en un Entorno de Alta Disponibilidad RabbitMQ

Para asegurar la alta disponibilidad y la redundancia, se puede configurar RabbitMQ en un clúster. A continuación se detallan los pasos para configurar un clúster de RabbitMQ.

Preparación de los Nodos
  1. Instalar RabbitMQ en todos los nodos del clúster: Sigue los pasos de instalación descritos anteriormente en todos los servidores que formarán parte del clúster.
  2. Configurar la comunicación entre los nodos: Asegúrate de que todos los nodos puedan comunicarse entre sí. Esto puede implicar la configuración de las reglas de firewall y la resolución de nombres DNS.
Configuración del Cluster
  • Copiar el archivo .erlang.cookie entre los nodos: RabbitMQ utiliza un archivo de cookie para autenticar los nodos del clúster. Copia el archivo “.erlang.cookie” del nodo principal a los demás nodos.
  • Unir los nodos al clúster: En cada nodo secundario, ejecuta los siguientes comandos para detener RabbitMQ, unir el nodo al clúster y reiniciar RabbitMQ.
  • Verificar el estado del clúster: En cualquier nodo, puedes verificar el estado del clúster con el siguiente comando:

Alta Disponibilidad y Mirroring de Colas en RabbitMQ

Para asegurar que las colas sean altamente disponibles, configura la política de mirroring de colas.

  • Configurar la política de mirroring:
Esto asegurará que todas las colas sean replicadas en todos los nodos del clúster.

Solución de Problemas Comunes en RabbitMQ

Problema 1: No se puede iniciar el servicio RabbitMQ

Solución:

  • Verifica los logs de RabbitMQ para identificar el problema:
  • Asegúrate de que Erlang está correctamente instalado y configurado.
Problema 2: Las colas no se están replicando en el clúster

Solución:

  • Verifica la política de mirroring:
  • Asegúrate de que todos los nodos están correctamente configurados y unidos al clúster.
Problema 3: Problemas de conectividad entre nodos

Solución:

  1. Verifica las reglas de firewall para asegurar que los nodos pueden comunicarse entre sí en los puertos necesarios.
  2. Asegúrate de que los nombres de host y DNS están correctamente configurados.

Ejemplo de Integración RabbitMQ y Nginx

Ahora vamos a detallar cómo integrar RabbitMQ con Nginx para gestionar las solicitudes de mensajes de manera eficiente. Este ejemplo cubrirá la instalación y configuración de RabbitMQ y Nginx, y cómo pueden trabajar juntos para manejar las solicitudes de mensajería.

Requisitos previos

  1. Servidor Ubuntu 20.04 o superior.
  2. Acceso root o permisos de sudo.

Instalación de RabbitMQ

Repetimos pasos que ya estaban anteriormente…

1. Instalar las Dependencias

2. Instalar Erlang

3. Instalar RabbitMQ

4. Configurar RabbitMQ

Accede al panel de administración en http://localhost:15672 con el usuario y contraseña guest/guest.

Instalación de Nginx

1. Instalar Nginx

2. Configurar Nginx para Proxy Reverso

Vamos a configurar Nginx como un proxy inverso para que pueda dirigir las solicitudes HTTP a RabbitMQ.

Agrega la siguiente configuración:

3. Habilitar la Configuración de Nginx

Ahora, cuando visites tu dominio o IP, Nginx dirigirá las solicitudes al panel de administración de RabbitMQ.

Ejemplo Práctico: Enviar y Recibir Mensajes en RabbitMQ

Para demostrar cómo RabbitMQ y Nginx pueden trabajar juntos, vamos a crear un ejemplo simple en Python.

1. Instalar Librerías Necesarias

2. Crear Productor de Mensajes

3. Crear Consumidor de Mensajes

4. Ejecutar los Scripts

En una terminal, ejecuta el productor:

En otra terminal, ejecuta el consumidor:

Verás que el consumidor recibe el mensaje enviado por el productor.

Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

19 + trece =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu