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 1. **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](https://www.rabbitmq.com/download.html). 2. **Installer les bibliothèques Python nécessaires**: Vous aurez besoin de la bibliothèque `pika` pour interagir avec RabbitMQ. Vous pouvez l'installer via pip: ```sh pip install pika ``` ### Producteur (Producer) Créez un fichier nommé `producer.py` avec le contenu suivant: ```python 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: ```python 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 1. **Démarrer RabbitMQ**: Assurez-vous que le serveur RabbitMQ est en cours d'exécution. 2. **Exécuter le consommateur**: Ouvrez un terminal et exécutez le consommateur: ```sh python consumer.py ``` 3. **Exécuter le producteur**: Ouvrez un autre terminal et exécutez le producteur: ```sh 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.