3.1 KiB
Pour créer deux micro-services Python qui communiquent via RabbitMQ, vous pouvez suivre les étapes suivantes. Nous allons créer un producteur (producer) et un consommateur (consumer). Le producteur enverra des messages à une file d'attente RabbitMQ, et le consommateur lira ces messages.
Prérequis
-
Installer RabbitMQ: Assurez-vous que RabbitMQ est installé et en cours d'exécution sur votre machine. Vous pouvez télécharger RabbitMQ depuis le site officiel.
-
Installer les bibliothèques Python nécessaires: Vous aurez besoin de la bibliothèque
pikapour interagir avec RabbitMQ. Vous pouvez l'installer via pip:pip install pika
Producteur (Producer)
Créez un fichier nommé producer.py avec le contenu suivant:
import pika
def main():
# Connexion à RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Déclaration de la file d'attente
channel.queue_declare(queue='hello')
# Envoi de messages
for i in range(10):
message = f"Hello World {i}"
channel.basic_publish(exchange='',
routing_key='hello',
body=message)
print(f" [x] Sent {message}")
# Fermeture de la connexion
connection.close()
if __name__ == '__main__':
main()
Consommateur (Consumer)
Créez un fichier nommé consumer.py avec le contenu suivant:
import pika
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
def main():
# Connexion à RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# Déclaration de la file d'attente
channel.queue_declare(queue='hello')
# Configuration du consommateur
channel.basic_consume(queue='hello',
on_message_callback=callback,
auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
main()
Exécution
-
Démarrer RabbitMQ: Assurez-vous que le serveur RabbitMQ est en cours d'exécution.
-
Exécuter le consommateur: Ouvrez un terminal et exécutez le consommateur:
python consumer.py -
Exécuter le producteur: Ouvrez un autre terminal et exécutez le producteur:
python producer.py
Vous devriez voir les messages envoyés par le producteur être reçus et affichés par le consommateur.
Explication
- Producer: Le producteur se connecte à RabbitMQ, déclare une file d'attente nommée
hello, et envoie 10 messages à cette file d'attente. - Consumer: Le consommateur se connecte à RabbitMQ, déclare la même file d'attente
hello, et commence à consommer les messages de cette file d'attente. Chaque message reçu est affiché dans la console.
Ces deux micro-services communiquent via RabbitMQ, ce qui permet une communication asynchrone et fiable entre eux.