RabbitMQ快速入门

编程

简单模式就用的比较少了,反而用Redis队列比较多.

这里把之前做的笔记都记下来.

RabbitMQ 介绍

  1. 是面向消息的中间件,用于组件之间的解耦.主要体现在消息的发送者和消费者之间无强依赖关系.
  2. 特点: 高可用,扩展性,多语言客户端,管理界面.
  3. 主要使用场景: 流量削峰,异步处理,应用解耦.
  4. 默认监听端口:15672

安装和查看

  • mac安装

    brew install rabbitmq

    注意,如果使用brew安装,不能直接使用RabbitMQ的命令只能手动指定路径/usr/local/Cellar/rabbitmq/3.8.2/sbin/rabbitmqctl

    但是可以直接使用brew services run rabbitmq启动RabbitMQ

  • ubuntu安装

    apt-get install rabbitmq-server

  • 配置浏览器访问

  1. 查看运行状态

sudo service rabbitmq-server statu

  1. 运行,关闭,重启,状态查看

# 系统命令

sudo service rabbitmq-server start

sudo service rabbitmq-server stop

sudo service rabbitmq-server restart

sudo service rabbitmq-server status

# rabbitmq-server命令

sudo rabbitmq-server start&

sudo rabbitmq-server stop

sudo rabbitmqctl status

  1. 如果要做Web可视化,需要安装插件,随后可以通过浏览器访问15672查看状态

sudo rabbitmq-plugins enable rabbitmq_management

  1. 重启服务

sudo service rabbitmq-server restart

  1. 查看用户

sudo rabbitmqctl list_users

  1. 增加普通用户,给普通用户分配为管理员角色,修改制定用户的密码

# 新建用户root,同时设置密码root

sudo rabbitmqctl add_user root root

# 为用户root设置最高权限

sudo rabbitmqctl set_user_tags root administrator

# 修改用密码

sudo rabbitmqctl change_password name "newPasswd"

#查看用户列表

sudo rabbitmqctl list_users

# 删除用户

sudo rabbitmqctl delete_user username

# 清除用户权限

sudo rabbitmqctl clear_permissions -p vhostpath username

# 设置权限

sudo rabbitmqctl set_permissions -p vhostpath username

  1. 现在可以用第7步设置的账号和密码来访问http://ip:15672 使用rabbitmq的监控页面.

RabbitMQ常用命令

插件管理

# 查看支持的插件列表

sudo rabbitmq-plugins list

# 开启插件

sudo rabbitmq-plugins enable 插件名

# 关闭插件

sudo rabbitmq-plugins disable 插件名

  • 查看插件[]为空说明未启用

sudo rabbitmq-plugins list

  • 开启插件

web管理界面插件

sudo rabbitmq-plugins enable rabbitmq_management

日志插件

sudo rabbitmq-plugins enablerabbitmq_tracing

  • 取消插件

sudo rabbit-mq-plugins disable rabbitmq_management

RabbitMQ核心概念

VirtualHost

数据隔离,区分队列,隔离账号. 比如可以分成生成和线下环境之类的

初始用户未绑定Vhost,需要绑定Vhost.一旦绑定之后用户只能通过这个Vhost工作不管是新建连接还是发送队列.

Connection

查看连接, 监听进程

Exchange

交换机,做中转用.

工作原理: 用户发送消息-> 交换机-> 根据交换机规则绑定对应的Key

Channel

建立连接通信

Queue

队列

绑定交换机接收消息,只要没有消费者,消息会一直存在队列中

Binding

将我们起的队列绑定到交换机上面,通过不同方式的绑定,可以实现不同的工作模式

工作中常用的模式

Simple(简单模式)

一个生产者,一个消费者.

每个消费者获取到的消息唯一,也就是同一个消息只能被消费一次,其他人再次消费的就是下一条消息.

就像普通队列那样.

Work(工作模式)

一个生产者,多个消费者

每个消费者获取到的消息唯一,也就是说同一个消息只能被消费一次,其他人再次消费的就是下一条消息。可以起到负载分配的作用,负载均衡. 就像普通队列那样

当生产数量比消费数量多的时候,就应该启用work模式.

其实work工作模式就是在simple模式的消费端多了几个消费者而已,代码什么的都不用变.多起几个消费者即可.

Publish/Subscribe(订阅模式)

订阅模式,消息被路由投递给多个队列,一个消息被多个消费者获取。

Routing(路由模式)

路由模式,一个消息被多个消费者获取。并且消息的目标队列可被生产者指定。

Topic(话题模式)

将路由键和某模式进行匹配,此时队列需要绑定在一个模式上,“#”匹配一个词或多个词,“*”只匹配一个词。

以上是 RabbitMQ快速入门 的全部内容, 来源链接: utcz.com/z/513314.html

回到顶部