微服务中间件--MQ服务异步通信
在微服务架构中,使用消息队列(MQ)服务进行异步通信是一种常见的模式。以下是一个使用RabbitMQ实现的简单示例:
首先,需要安装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()
消费者(接收消息并处理):
import pika
# 连接到RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明队列
channel.queue_declare(queue='hello')
print(' [*] Waiting for messages. To exit press CTRL+C')
# 定义回调函数来处理消息
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
# 开始监听并接收消息,并指定回调函数
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
# 开始监听消息
channel.start_consuming()
确保先运行消费者来监听队列,然后生产者可以发送消息。当消费者接收到消息时,会调用callback
函数来处理接收到的消息。
评论已关闭