Python con RabbitMQ uso básico de la terminal

Clase 15 de 36Curso de Celery 4

Resumen

¿Cómo configurar RabbitMQ con Python utilizando la biblioteca Pika?

RabbitMQ es una potente biblioteca para trabajar con protocolos de mensajería como AMQP (Advanced Message Queuing Protocol). En esta guía, aprenderás a configurar RabbitMQ utilizando la biblioteca Pika en Python, entender la importancia de manejar colas de mensajes y crear conexiones seguras y eficientes.

¿Qué es Pika y cómo se usa?

Pika es una biblioteca que permite interactuar de manera sencilla con RabbitMQ. Ofrece mecanismos básicos para gestionar colas de mensajes, lo cual es vital para aplicaciones que dependen mucho de la mensajería. Para trabajar con Pika, primero debes incluirla manualmente en tu archivo requirements.txt para asegurarte de que solo instalas lo necesario.

pika

¿Por qué no usar entornos virtuales como Virtualenv?

Existen algunos peligros al usar entornos virtuales. Por ejemplo, Virtualenv puede crear una idea falsa de seguridad y flexibilidad al no tener cuidado con la descripción detallada de tus requisitos. Es recomendable anotar manualmente las bibliotecas que se utilizan, como se vio con requirements.txt, para tener un control claro de lo que tu proyecto necesita.

¿Cómo se crea una clase de conexión en Python?

El siguiente paso en nuestra configuración es crear una clase que maneje la conexión a RabbitMQ. Esta clase encapsula la conexión y el canal, lo cual facilita escribir código orientado a objetos.

import pika

class ConexionRabbitMQ:
    def __init__(self, config_ruta_secreta='config.env'):
        # Cargar configuraciones desde el archivo secreto
        self.parametros = self.cargar_configuracion(config_ruta_secreta)
        self.conexion = self.crear_conexion()
        self.canal = self.crear_canal()

    def cargar_configuracion(self, ruta):
        # Lógica para cargar y leer configuraciones
        pass

    def crear_conexion(self):
        # Crear la conexión a RabbitMQ
        parametros = pika.ConnectionParameters(
            host='localhost',
            credentials=pika.PlainCredentials('usuario', 'clave')
        )
        return pika.BlockingConnection(parametros)

    def crear_canal(self):
        # Crear un canal desde la conexión
        return self.conexion.channel()

¿Cómo se establecerán configuraciones en RabbitMQ?

Tienes que asegurarte de que las configuraciones estén definidas adecuadamente. Esto incluye la creación de colas virtuales, usuarios, permisos y más. Utiliza la línea de comandos de RabbitMQ para añadir usuarios y colas virtuales. Aquí se muestra cómo crear y configurar un host virtual en RabbitMQ:

# Crear un host virtual
sudo rabbitmqctl add_vhost PlatziVHost

# Crear un usuario
sudo rabbitmqctl add_user platzi password

# Asignar permisos al usuario en el host virtual
sudo rabbitmqctl set_permissions -p PlatziVHost platzi ".*" ".*" ".*"

¿Cómo gestionamos colas de mensajes en RabbitMQ?

Al tener un canal, puedes declarar una nueva cola que será gestionada por tu aplicación de mensajería. Es crucial declarar explícitamente las colas en RabbitMQ para que los mensajes puedan ser enviados y recibidos correctamente.

self.canal.queue_declare(queue='mi_cola')

¡Y así logras configurar RabbitMQ usando Pika en Python! Esta preparación te permitirá manejar colas de manera eficiente, garantizando que tus aplicaciones de mensajería funcionen de manera segura y óptima. Continúa explorando, probando y ajustando tus configuraciones para sacarle el máximo provecho a RabbitMQ.