1. 安装RabbitMQ
编写docker-compose.yml文件
version: '3.8'
services:
rabbitmq:
image: rabbitmq:management
container_name: rabbitmq_container
ports:
- "5672:5672"
- "15672:15672"
volumes:
- ./rabbitmq_data:/var/lib/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
2. RabbitMQ 生产数据
import pika
def send_message():
# Connection parameters including authentication
credentials = pika.PlainCredentials('guest', 'guest')
parameters = pika.ConnectionParameters(host='10.254.2.186', credentials=credentials)
# Establish a connection
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# Declare a queue
queue_name = 'example_queue'
channel.queue_declare(queue=queue_name)
# Publish a message
message = "Hello, RabbitMQ!"
channel.basic_publish(exchange='', routing_key=queue_name, body=message)
print(" [x] Sent %r" % message)
connection.close()
if __name__ == '__main__':
send_message()
3. RabbitMQ 消费数据
import pika
def receive_messages():
# Connection parameters including authentication
credentials = pika.PlainCredentials('guest', 'guest')
parameters = pika.ConnectionParameters(host='10.254.2.186', credentials=credentials)
# Establish a connection
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# Declare a queue (this step is optional since it was declared by the sender)
queue_name = 'example_queue'
channel.queue_declare(queue=queue_name)
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
# Start consuming messages
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == '__main__':
receive_messages()