引言RabbitMQ是一个开源的消息队列系统,它实现了高级消息队列协议(AMQP)。在分布式系统中,消息队列是一种常用的解耦手段,可以有效地提高系统的可靠性和扩展性。本文将详细介绍如何在Ubuntu系...
RabbitMQ是一个开源的消息队列系统,它实现了高级消息队列协议(AMQP)。在分布式系统中,消息队列是一种常用的解耦手段,可以有效地提高系统的可靠性和扩展性。本文将详细介绍如何在Ubuntu系统上部署RabbitMQ,并展示如何使用RabbitMQ实现消息队列的基本操作。
在开始部署RabbitMQ之前,请确保您的Ubuntu系统满足以下条件:
sudo apt-get updateRabbitMQ是基于Erlang语言编写的,因此需要先安装Erlang环境。
sudo apt-get install erlangsudo apt-get install rabbitmq-serversudo systemctl start rabbitmq-serversudo systemctl enable rabbitmq-server默认情况下,RabbitMQ的管理界面运行在5672端口。您可以通过浏览器访问以下地址查看管理界面:
http://localhost:5672/登录管理界面需要用户名和密码,默认用户名为guest,密码也为guest。为了安全起见,建议您修改默认的用户和密码。
sudo rabbitmqctl add_user username password
sudo rabbitmqctl set_user_tags username administrator
sudo rabbitmqctl change_password guest newpassword虚拟主机是RabbitMQ的命名空间,用于隔离不同的消息队列和用户。
sudo rabbitmqctl add_vhost vhost_name
sudo rabbitmqctl set_permissions -p vhost_name username ".*" ".*" ".*"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
def callback(ch, method, properties, body): print(" [x] Received %r" % body)
# 连接到RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 声明队列
channel.queue_declare(queue='hello')
# 消费消息
channel.basic_consume(queue='hello', on_message_callback=callback)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()本文详细介绍了如何在Ubuntu系统上部署RabbitMQ,并展示了如何使用RabbitMQ实现消息队列的基本操作。通过本文的学习,您可以轻松地将RabbitMQ应用到您的项目中,提高系统的可靠性和扩展性。