RockerMQ原理和简单使用
RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用间共享数据。以下是RabbitMQ的基本概念和使用方法。
RabbitMQ基本概念
- Message: 消息是RabbitMQ的基本数据单元。
- Producer: 消息的生产者,发送消息到队列。
- Consumer: 消息的消费者,接收消息并处理。
- Queue: 消息队列,保存消息直到发送给消费者。
- Exchange: 交换机,指定消息如何路由到队列。
- Binding: 绑定,连接交换机和队列的规则。
- Connection: 网络连接,比如一个TCP连接。
RabbitMQ简单使用
以下是Python中使用pika
库来发送和接收消息的简单例子。
安装pika库:
pip install pika
生产者(发送消息):
import pika
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
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
在这个例子中,我们首先创建了一个到RabbitMQ服务器的连接,然后声明了一个队列,并发送了一个简单的字符串消息。接下来,我们声明了相同的队列并开始消费消息,每收到一个消息就调用callback
函数打印出来。这里auto_ack=True
表明一旦消费者接收消息,RabbitMQ会自动确认该消息并将其从队列中移除。
评论已关闭