RabbitMQ

本小妞迷上赌 提交于 2020-02-17 02:39:00

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个或多个单词)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!