RabbitMQ 是一个免费开源的消息队列应用,应用非常广泛,本文主要介绍 RabbitMQ 的安装使用和 Python+pika 的简单调用.
RabbitMQ 安装
1
| apt install rabbitmq-server
|
更多平台以及安装方式可以去官网查看 https://www.rabbitmq.com/download.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # 查看节点状态 rabbitmqctl status # 创建虚拟主机(也就是访问节点,默认自带 '/' 根结点,强烈建议根据业务创建自己的节点) rabbitmqctl add_vhost 主机名 # 添加用户 rabbitmqctl add_user 用户名 密码 # 修改密码 rabbitmqctl change_password 用户名 密码 # 设置管理员 rabbitmqctl set_user_tags 用户名 administrator # 设置虚拟主机访问权限 # rabbitmqctl set_permissions -p 虚拟主机 用户名 配置 写 读 # 启用权限 ".*" 禁用权限 "^$" rabbitmqctl set_permissions -p 虚拟主机 用户名 ".*" ".*" ".*" # 查看用户权限 rabbitmqctl list_user_permissions 用户名
|
可以使用 rabbitmq-plugins enable rabbitmq_management
命令开启管理插件,然后访问 http://localhost:15672
进入管理界面,管理后台的端口是 15672,消息服务的端口是 5672,注意不要搞混了,很多第一次使用的人会在这里踩坑
Python 使用 RabbitMQ
1 2 3 4 5 6 7 8 9 10
| import pika
credentials = pika.PlainCredentials("用户名", "密码")
connection = pika.BlockingConnection(pika.ConnectionParameters("服务IP", "端口", credentials=credentials, heartbeat=0, virtual_host="虚拟主机")) channel = connection.channel()
channel.queue_declare(queue='default', durable=True)
channel.basic_publish(exchange='', routing_key='default', body=json.dumps({"url": url, "data": data}, ensure_ascii=False), properties=pika.BasicProperties(delivery_mode=2))
|
1 2 3 4 5 6 7 8 9
| import pika
credentials = pika.PlainCredentials("用户名", "密码") connection = pika.BlockingConnection(pika.ConnectionParameters("服务IP", "端口", credentials=credentials, heartbeat=0, virtual_host="虚拟主机")) channel = connection.channel() channel.queue_declare(queue='default', durable=True)
channel.basic_consume(queueName,on_message_callback=module.run, auto_ack=True) channel.start_consuming()
|