RabbitMQ 是一个使用 Erlang 编写的消息队列的实现,能够接收并转发消息。

RabbitMQ is open source message broker software (sometimes called message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP). The RabbitMQ server is written in the Erlang programming language and is built on the Open Telecom Platform framework for clustering and failover. Client libraries to interface with the broker are available for all major programming languages.

优点

  • 相对轻量的消息队列,易部署使用
  • 多协议支持
  • 灵活的路由配置 Exchange 模块
  • 多语言支持
  • 管理界面丰富
  • 社区活跃

缺点

  • 大量积压消息会导致性能下降
  • 每秒可以处理几万到几十万的消息,满足大部分的场景,但如果有更高的要求就不太合适
  • 使用 Erlang 开发,维护和二次开发成本较高

安装

各个平台的安装官网都非常详细: https://www.rabbitmq.com/download.html

各个语言的客户端:https://www.rabbitmq.com/devtools.html

apt install rabbitmq-server

Docker 安装

docker pull rabbitmq
docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmq rabbitmq:latest  

rabbitmq 默认的 latest tag 是不带管理页面的如果是要管理页面需要使用 rabbitmq:3-management

docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmq rabbitmq:3-management

启动之后访问 http://ip:15672 就能够访问管理后台

使用

列出当前 RabbitMQ 中的队列

sudo rabbitmqctl list_queues

列出 exchange

sudo rabbitmqctl list_exchanges

各个客户端的教程官方的教程非常详细可以直接参考。

reference