RabbitMQ

官网地址

中文文档

PHP文档

看云文档

安装

# 安装 erlang
brew install erlang

# 下载二进制文件
https://www.rabbitmq.com/download.html

协议

RabbitMQ 使用 AMQP 协议

AMQP (Advanced Message Queuing Protocol) 高级消息队列协议

关键词

  • 消息(message)
  • 发布者(publisher)或者叫 生产者(producer)
  • 交换机(exchange)
  • 队列(queue)
  • 订阅者(subscriber)或者叫 消费者(consumer)

交换机类型

  • Direct exchange(直连交换机)amq.direct 精确匹配队列
  • Fanout exchange(扇型交换机)amq.fanout 广播
  • Topic exchange(主题交换机)amq.topic 模糊匹配队列 路由键一般用.隔开 *表示模糊匹配一个单词 #表示模糊匹配任意数量(零个或多个)单词
  • Headers exchange(头交换机) amq.headers 根据头信息匹配队列

流程

消息(message)被发布者(publisher)发送给交换机(exchange),交换机常常被比喻成邮局或者邮箱。然后交换机将收到的消息根据路由规则分发给绑定的队列(queue)。最后AMQP代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取

命令行

  • rabbitmq-server -detached 启动rabbitmq
  • rabbitmqctl stop 关闭rabbitmq
  • rabbitmqctl status 查看状态
  • rabbitmqctl list_queues 查看Rabbitmq队列,并列出多少消息存在其中
  • rabbitmqctl list_exchanges 列出服务器上所有的交换器
  • rabbitmqctl list_bindings 列出所有现存的绑定
  • rabbitmq-plugins list 查看插件列表
  • rabbitmq-plugins enable rabbitmq_management (启用后台管理系统插件)
  • rabbitmq-plugins disable rabbitmq_management (禁用后台管理系统插件)
  • rabbitmqctl 查看所有命令

配置

默认可以不配置,路径 etc/rabbitmq/rabbitmq.conf

# 配置示例
listeners.tcp.local                   = 127.0.0.1:5672
heartbeat                             = 60
frame_max                             = 131072
channel_max                           = 128
vm_memory_high_watermark.relative     = 0.4
vm_memory_high_watermark_paging_ratio = 0.5
disk_free_limit.absolute              = 50000
log.console                           = false
log.console.level                     = info
log.exchange                          = false
log.exchange.level                    = info

管理后台

127.0.0.1:15672

results matching ""

    No results matching ""