一、安装RabbitMQ
首先,需要安装 RabbitMQ,这个过程非常简单。您可以按照下面的步骤进行操作。
1、添加 Erlang 仓库
sudo nano /etc/apt/sources.list.d/erlang.list
2、将以下内容添加到文件中
deb https://packages.erlang-solutions.com/ubuntu trusty contrib
3、添加公共秘钥
wget -O - https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
4、更新仓库
sudo apt-get update
5、安装 RabbitMQ
sudo apt-get install rabbitmq-server
6、检查 RabbitMQ 是否安装成功
sudo systemctl status rabbitmq-server
如果您看到“active (running)”字样,则说明 RabbitMQ 已经安装成功了。
二、配置RabbitMQ
在启动应用程序之前,您需要为 RabbitMQ 配置基本设置。下面是一些要素需要设置。
1、添加用户和密码
sudo rabbitmqctl add_user admin your_password
2、将 admin 设置为管理员用户
sudo rabbitmqctl set_user_tags admin administrator
3、设置权限
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
现在您已经配置了用户名和密码,以及设置了基本的权限。下面需要讲解如何访问 RabbitMQ。
三、访问RabbitMQ
默认情况下,RabbitMQ 监听端口为 5672。如果您使用 localhost 访问,则 URL:http://localhost:5672。如果您希望从外部访问,则可以使用 IP 地址或公共 DNS。
如果您想通过 Web 界面访问 RabbitMQ,则需要启用插件,如下所示:
sudo rabbitmq-plugins enable rabbitmq_management
执行此命令后,可以通过以下地址访问 RabbitMQ 管理面板。
URL:http://localhost:15672/ 用户名:guest 密码:guest
四、编写RabbitMQ客户端
现在,我们已准备好用 RabbitMQ 构建应用程序了。下一步是编写一个客户端,该客户端将连接到 RabbitMQ,并向其发送一条消息。下面是客户端代码:
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()
该客户端会将“Hello World!”文本发送到名为“hello”的队列。如果该队列不存在,客户端会创建一个。确认代码是否运行良好之后,我们可以编写一些作为 RabbitMQ 消费者的代码。
import pika def callback(ch, method, properties, body): print(" [x] Received %r" % body) connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
这个代码片段使用一个回调函数来处理“hello”队列中的消息。我们在控制台上输出收到的消息。让我们一起运行这两个文件
python send.py python receive.py
您应该可以在终端中看到“Hello World!”消息。该示例仅是 RabbitMQ 功能的一部分,让您更好地了解这个强大而又简单的消息队列系统。