Python 消息中間件是一種在異構系統之間的消息傳遞模式。它通過提供可重用的模塊來簡化不同系統之間的通信和集成,從而實現松散耦合的架構。
在 Python 中,流行的消息中間件包括 RabbitMQ、Kafka、ZeroMQ、Pulsar 等。下面以 RabbitMQ 為例,介紹消息中間件的基本概念和使用。
import pika # 連接 RabbitMQ 服務器 connection = pika.BlockingConnection( pika.ConnectionParameters('localhost')) channel = connection.channel() # 聲明一個隊列 channel.queue_declare(queue='hello') # 發送消息到隊列 channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') print(" [x] Sent 'Hello World!'") # 關閉連接 connection.close()
上述代碼連接本地 RabbitMQ 服務器,聲明一個名為 "hello" 的隊列,將一條消息發送到該隊列,并關閉連接。
接收消息的代碼如下:
import pika # 連接 RabbitMQ 服務器 connection = pika.BlockingConnection( pika.ConnectionParameters('localhost')) channel = connection.channel() # 聲明一個隊列 channel.queue_declare(queue='hello') # 定義消息處理函數 def callback(ch, method, properties, body): print(" [x] Received %r" % body) # 告訴 RabbitMQ 調用 callback 函數處理接收到的消息 channel.basic_consume(queue='hello', auto_ack=True, on_message_callback=callback) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
上述代碼連接本地 RabbitMQ 服務器,聲明一個名為 "hello" 的隊列,定義消息處理函數 callback,并告訴 RabbitMQ 調用該函數處理接收到的消息。最后,程序進入接收消息的循環,等待消息到達。
使用 Python 消息中間件可以方便地實現系統之間的解耦和異步處理,提高系統的可伸縮性和可維護性。同時,消息中間件也提供了豐富的功能,如消息持久化、消息隊列優先級、消息路由等。