RabbitMQ之入门概述及安装解读

2023-10-05 09:25:18 浏览数 (1)

基本介绍

概述

RabbitMQ是一个广泛使用的消息服务器,采用Erlang语言编写,是一种开源的实现 AMQP(高级消息队列协议)的消息中间件;

  • RabbitMQ 拥有数万名用户,是最受欢迎的开源消息代理之一。从T-Mobile 到Runtastic,RabbitMQ 在全球范围内的小型初创公司和大型企业中得到使用。
  • RabbitMQ 是轻量级的,易于在本地和云中部署。它支持多种消息传递协议和流媒体。 RabbitMQ 可以部署在分布式和联合配置中,以满足高规模、高可用性的需求。
  • RabbitMQ 运行在许多操作系统和云环境上,并为大多数流行语言提供了广泛的开发人员工具。

RabbitMQ最初起源于金融系统,它的性能及稳定性都非常出色;

AMQP协议(http://www.amqp.org),即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

学习网址

官网:RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ

Github:https://github.com/rabbitmq

消息中间件

简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。消息中间件一般有三个主要角色:生产者、消费者、消息代理(消息队列、消息服务器);

MQ=Message Queue

​编辑

生产者发送消息到消息服务器,然后消费者从消息代理(消息队列)中获取数据并进行处理;

应用场景

应用解耦(异步)

下订单---向MQ 发消息--》积分系统,手机短信系统接收消息

​编辑

同步是阻塞的(会造成等待),异步是非阻塞的(不会等待); 大流量高并发请求、批量数据传递,就可以采用异步处理,提升系统吞吐量;

系统解耦

多个系统之间,不需要直接交互,通过消息进行业务流转;

​编辑流量削峰

MQ 数据是只有一条数据在使用中。 在很多存在并发,而又对数据一致性要求高,而且对性能要求也高的场景,如何保证,那么MQ就能起这个作用了。不管多少流量进来,MQ都会让你遵守规则,排除处理,不会因为其他原因,导致并发的问题,而出现很多意想不到脏数据。

基于Docker的快速安装

使用docker查询rabbitmq的镜像

代码语言:javascript复制
docker search rabbitmq

安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可

代码语言:javascript复制
docker pull rabbitmq

启动mq

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq

需要注意的是-p 5673:5672 解释:-p 外网端口:Docker的内部端口 ,你们可以改成自己的外网端口号,我这里映射的外网端口是5673那么程序连接端口就是用5673

通过docker ps -a 查看部署的mq容器id,在通过 docker exec -it 容器id /bin/bash 进入容器内部在 运行:rabbitmq-plugins enable rabbitmq_management

命令执行完毕后,web管理界面就启用了,打开浏览器输入地址http://ip:15672/

默认用户名和密码都是guest

常见使用命令

rabbitmqctl 是一个管理命令,可以管理rabbitmq的很多操作。

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。

这些操作都是通过rabbitmqctl管理命令来实现完成。

查看帮助:

rabbitmqctl add_user --help

相应的命令

查看当前用户列表

rabbitmqctl list_users

新增一个用户

语法:rabbitmqctl add_user Username Password 示例: rabbitmqctl add_user admin 123456

设置用户角色

rabbitmqctl set_user_tags User Tag 示例:rabbitmqctl set_user_tags admin administrator

说明:此处设置用户的角色为管理员角色

设置用户权限

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

说明:此操作是设置admin用户拥有操作虚拟主机/下的所有权限

查看用户权限

./rabbitmqctl list_permissions

​​​我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

0 人点赞