RabbitMQ的安装
- 注意:需要匹配elang 和rabbitmq-server的版本,版本不对会有问题
# Erlang安装
sudo apt install erlang erlang-nox
# 安装rabbitmq服务器
sudo apt install rabbitmq-server
# 启动、停止、重启rabbitmq服务
service rabbitmq-server start/stop/restart
# 创建普通用户
sudo rabbitmqctl add_user your_username your_password
# 设置用户为管理员
sudo rabbitmqctl set_user_tags your_username administrator
# 用户添加管理权限
rabbitmqctl set_permissions -p / python ".*" ".*" ".*"
# 查看状态
sudo rabbitmqctl status
# 查看队列
sudo rabbitmqctl list_queues
- 消息确认机制
处理完消息后会有一个回执,避免中途挂掉 - 消息调度
- 循环调度,你一个任务我一个任务,没做完就等着(默认)
- auto_ack=True
- ch.basic_ack(delivery_tag=method.delivery_tag)
- 公平调度,不确认就不分发
- channel.basic_qos(prefetch_count=1)
- 循环调度,你一个任务我一个任务,没做完就等着(默认)
- 消息持久化
- 队列持久化
- channel.queue_declare(queue=‘my_queue’,durable=True)
- 消息持久化
- basic_publish指定properties参数=pika.BasicProperties(delivery_mode=2)
- 队列持久化
- Exchange
- fanout 广播给所有队列,采用匿名队列,如果队列没有消费者绑定就会自动删除
- direct 指定某个队列来接收对应的消息,也可以几个队列接收相同的消息(根据具体的routing_key的具体名字进行路由匹配)
- topic 和direct一样,但是根据模式来匹配(o个或多个单词)
来源:CSDN
作者:被窝中的coder
链接:https://blog.csdn.net/qq_34552225/article/details/104338706