抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

组成说明

  • Broker:消息队列服务进程, 改进程包括2部分: Exchange和Queue.
  • Exchange:消息队列交换机, 按一定的规则将消息路由转发到某队列, 对消息进行过滤.
  • Queue:消息队列, 存储消息队列, 消息到达队列并转发给指定的消费方.
  • Producer:消息生产者, 即生产客户端, 生产客户端将消息发送到MQ.
  • Consumer:消息消费者, 即消费方客户端, 接收MQ转发的消息.

发送消息

  • 生产者和Broker建立TCP连接.
  • 生产者和Broker建立通道.
  • 生产者通过通道消息发送给Broker, 由Exchange将消息转发.
  • Exchange将消息转发到指定的Queue(队列).

接收消息

  • 消费者和Broker建立TCP连接.
  • 消费者和Broker建立通道.
  • 消费者监听指定的Queue(队列).
  • 当有消息到达Queue时Broker默认将消息推送给消费者.
  • 消费者接收到消息.

工作模式

  • Work queues 工作队列 使用轮询
  • Publish/Subscribe 发布
  • Routing 路由 routingKey 相同匹配
  • Topics 通配符匹配
  • Header Header转发器
  • RPC 远程过程调用

Linux安装RabbitMQ

使用 CentOS 安装, 其它Linux系统看官网.

# 下载安装包
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.3/rabbitmq-server-3.8.3-1.el7.noarch.rpm
# 安装
rpm -ivh rabbitmq-server-3.8.3-1.el7.noarch.rpm --nodeps
# 依赖问题
# socat 被 rabbitmq-server-3.8.3-1.el7.noarch 需要
yum install socat
# 开启用户远程访问
cp /usr/share/doc/rabbitmq-server-3.8.3/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
vim /etc/rabbitmq/rabbitmq.config
loopback_users = none
# 启动/停止
systemctl start rabbitmq-server
systemctl stop rabbitmq-server
systemctl restart rabbitmq-server
systemctl status rabbitmq-server
# 启动失败查看原因
journalctl -xe
# 报错/usr/lib/rabbitmq/bin/rabbitmq-server:行187: erl: 未找到命令
vim rabbitmq-server
ERL_DIR=/usr/local/erlang/bin/
# 开启web界面
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
# 默认登录用户名和密码都是:guest http://192.168.123.122:15672
# 设置开机启动
chkconfig rabbitmq-server on

Docker安装RabbitMQ

# 拉取镜像
docker pull docker pull rabbitmq:management
# 方式一:默认guest 用户, 密码也是 guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
# 方式二:设置用户名和密码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
# 访问管理后台 http://localhost:15672 guest

Windows安装RabbitMQ

windows下安装,先安装好erlang环境,可以使用 scoop 进行安装。

官网下载:https://www.rabbitmq.com/install-windows-manual.html

配置相关:https://www.rabbitmq.com/relocate.html

首先添加环境变量RABBITMQ_BASE

注意,如果想要自定义存储的目录,一定要先添加,否则安装之后修改不了。

下载好压缩包后解压,使用命令行进入到该目录下。

# 安装服务
sudo .\rabbitmq-service.bat install
# 移除服务
sudo .\rabbitmq-service.bat remove
 
# 启动后台管理界面
.\rabbitmq-plugins enable rabbitmq_management

# 启动服务
.\rabbitmq-service.bat start
# 或者这样
sudo net start RabbitMQ
sudo net stop RabbitMQ

# 查看状态
.\rabbitmqctl.bat status
# 查看启动/停止中的服务
.\rabbitmqctl.bat start_app
.\rabbitmqctl.bat stop_app

# Error: unable to perform an operation on node 'rabbit@DevLGQ'...
# 发现启动失败,把
# C:\Users\lgq\.erlang.cookie
# 复制到
# C:\Windows\System32\config\systemprofile\.erlang.cookie

# 不安装服务后台启动
.\rabbitmq-server.bat -detached

# 添加 admin 用户并设置密码
.\rabbitmqctl add_user admin lgq2020
# 设置 admin 用户为administrator角色
.\rabbitmqctl set_user_tags admin administrator
# 设置 admin 用户的权限,指定允许访问的vhost以及write/read
.\rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# :查看vhost(/)允许哪些用户访问
.\rabbitmqctl list_permissions -p /
# 查看用户列表
.\rabbitmqctl list_users
# 重启RabbitMQ,然后用设置账户和密码登录。

# 访问后台管理界面
#  http://localhost:15672/#/

评论