0


Ubuntu 环境安装 之 RabbitMQ 快速入手

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~
🌱🌱个人主页:奋斗的明志
🌱🌱所属专栏:RabbitMQ

📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。

在这里插入图片描述

Ubuntu 环境安装

前言

Rabbit, 兔子的意思
互联网行业很多公司, 都喜欢用动物命名产品, 或者作为公司的logo, 吉祥物. 比如: 腾讯的企鹅, 京东的狗, 美团的袋鼠, 携程的海豚,阿里就更多了, 蚂蚁, 飞猪,天猫,菜鸟, 闲鱼, 盒马… 更是以一己之力, 组建了一个动物园…

  1. Rabbit

也是⼀个公司名.

  1. MQ ( message queue )

消息队列 的意思 ,

  1. RabbitMQ

  1. Rabbit

企业下的⼀个消息队列产品.

  1. RabbitMQ

是⼀个实现了

  1. AMQP

  1. 消息队列

服务,是当前主流的消息中间件之⼀.

  1. AMQP

,即

  1. Advanced Message Queuing Protocol(⾼级消息队列协议)

,是⼀个

  1. 通⽤

  1. 应⽤层

协议,提供统⼀消息服务的协议, 为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端或中间件, 开发语言等条件的限制。

在互联网架构中, 会经常使用MQ来作为消息通信服务. 接下来我们看下什么是MQ

一、什么是MQ(消息队列)

  1. MQ( Message queue ),

从字面意思上看, 本质是个队列,

  1. FIFO 先⼊先出

,只不过队列中存放的内容

  1. 消息(message)

⽽已. 消息可以非常简单,比如只包含文本字符串, JSON等,也可以很复杂, 比如内嵌对象.
在日常生活中,例如:手机、水杯…可能会进行一些排队摆放

在这里插入图片描述

MQ多用于分布式系统之间进行通信

  • 系统之间的调用通常有两种方式:
  • 同步通信:

直接调用对方的服务, 数据从一端发出后立即就可以达到另⼀端

在这里插入图片描述

  • 异步通信:

数据从⼀端发出后,先进入⼀个容器进行临时存储,当达到某种条件后,再由这个容器发送给另⼀端.
容器的⼀个具体实现就是

  1. MQ( message queue )

在这里插入图片描述

  1. RabbitMQ

就是

  1. MQ

的⼀种实现

例如:
打电话客服直接响应
客服记录下来,过一段时间(24小时)内进行回复

二、MQ的作用

MQ主要工作是接收并转发消息, 在不同的应用场景下可以展现不同的作用

可以把MQ想象成一个仓库. 采购部门进货之后, 把零件放进仓库里
生产部门从仓库中取出零件, 并加工成产品.
MQ和仓库的区别是, 仓库里放的是物品, MQ里放的是消息
仓库负责存储物品,并转发物品,MQ负责存储和转发消息

1、异步解耦

在业务流程中, ⼀些操作可能非常耗时, 但并不需要即时返回结果. 可以借助

  1. MQ

把这些操作异步化, 比如用户注册后发送注册短信或邮件通知, 可以作为异步任务处理, 而不必等待这些操作完成后才告知用户注册成功

在这里插入图片描述

2、流量削峰

在访问量剧增的情况下, 应用仍然需要继续发挥作用, 但是这样的突发流量并不常见. 如果以能处理这类峰值为标准而投入资源,无疑是巨大的浪费. 使用

  1. MQ

能够使关键组件支撑突发访问压力, 不会因为突发流量而崩溃. 比如秒杀或者促销活动, 可以使用

  1. MQ

来控制流量, 将请求排队, 然后系统根据自己的处理能力逐步处理这些请求.
例如:12306 节假日的时候进行买票(不可能在这个时候买入多台机器)
商场人多的时候进行排队

3、消息分发

当多个系统需要对同⼀数据做出响应时, 可以使用

  1. MQ

进行消息分发. 比如支付成功后, 支付系统可以向

  1. MQ

发送消息, 其他系统订阅该消息, 而无需轮询数据库.

4、延迟通知

在需要在特定时间后发送通知的场景中, 可以使用

  1. MQ

的延迟消息功能, 比如在电⼦商务平台中,如果用户下单后⼀定时间内未⽀付,可以使用延迟队列在超时后自动取消订单
例如:会议时间提前通知


三、为什么选择 RabbitMQ

⽬前业界有很多的MQ产品, 例如

  1. RabbitMQ

,

  1. RocketMQ

,

  1. ActiveMQ

,

  1. Kafka

,

  1. ZeroMQ

等, 也有直接使用

  1. Redis

充当消息队列的案例, 这些消息队列, 各有侧重, 也没有好坏, 只有适合不适合, 在实际选型时, 需要结合自身需求以及

  1. MQ

产品特征, 综合考虑

以下我们介绍⼀下当前最主流的3种MQ产品

1、Kafka

**Kafka⼀开始的目的就是用于日志收集和传输,

  1. 追求高吞吐量, 性能卓越, 单机吞吐达到⼗万级

,

  1. 在日志领域比较成熟

, 功能较为简单,主要⽀持简单的 MQ 功能,

  1. 如果有⽇志采集需求,肯定是首kafka

了。**

2、RocketMQ

RocketMQ采⽤Java语⾔开发, 由阿⾥巴巴开源, 后捐赠给了Apache.
它在设计时借鉴了Kafka,并做出了⼀些自己的改进, ⻘出于蓝⽽胜于蓝, 经过多年双⼗⼀的洗礼, 在
可⽤性、可靠性以及稳定性等⽅⾯都有出⾊的表现. 适合对于可靠性⽐较⾼,且并发⽐较⼤的场景, ⽐
如互联⽹⾦融. 但⽀持的客户端语⾔不多, 且社区活跃度⼀般

3、RabbitMQ

**采⽤Erlang语言开发, MQ 功能⽐较完备, 且几乎⽀持所有主流语言,

  1. 开源提供的界面也非常友好

, 性能较好,

  1. 吞吐量能达到万级

,

  1. 社区活跃度也⽐较高

,比较适合中小型公司, 数据量没那么大, 且并发没
那么高的场景.**

四、RabbitMQ 快速上手

接下来我们来进行

  1. RabbitMQ

的安装, 并进行入门程序的演示,让大家对于

  1. RabbitMQ

有⼀个更加直观的感受.

  1. RabbitMQ

是⼀套开源的消息队列服务软件, 基于

  1. Erlang

语言编写, 所以安装

  1. RabbitMQ

之前, 需要先安装部署

  1. Erlang

环境, 再安装

  1. RabbitMQ

环境.

  1. RabbitMQ

大多部署在

  1. Linux

操作系统

在这里插入图片描述

1、Ubuntu 环境安装

  1. RabbitMQ

已经包含在标准的

  1. Ubuntu

仓库中, 然而,包含的版本通常比最新的

  1. RabbitMQ

发⾏版落后很多,可能提供的

  1. RabbitMQ

版本已经不⽀持.

  1. RabbitMQ

团队制作了自己的软件包,并使

  1. Cloudsmith

进行分发

具体操作可以参考: https://www.rabbitmq.com/docs/install-debian
由于该种方法安装比较复杂, 学习阶段, 咱们使⽤

  1. Ubuntu

仓库中的版本来安装

2、安装Erlang

  1. RabbitMq

需要

  1. Erlang

语言的支持,在安装

  1. rabbitMq

之前需要安装

  1. erlang
  1. #更新软件包
  2. sudo apt-get update
  3. #安装erlang
  4. sudo apt-get install erlang

在这里插入图片描述


在这里插入图片描述

22 以上的版本会出现以下这个界面 这个时候按

  1. Esc

键就行

在这里插入图片描述

出现以下界面就好了

在这里插入图片描述

3、查看erlang版本

  1. root@hcss-ecs-0bb1:~# erl
  2. Erlang/OTP 22 [erts-10.6.4][source][64-bit][smp:2:2][ds:2:2:10][asyncthreads:1]
  3. Eshell V10.6.4 (abort with ^G)

在这里插入图片描述

退出命令 halt().

在这里插入图片描述

Ctrl + c 也能退出

五、安装RabbitMQ

1、安装

  1. #更新软件包
  2. sudo apt-get update
  3. #安装rabbitmq
  4. sudo apt-get install rabbitmq-server
  5. #确认安装结果
  6. systemctl status rabbitmq-server

在这里插入图片描述

这里也会出现紫色的,跟上面操作一样 按 Esc 键

2、确认安装结果

表示安装成功

在这里插入图片描述

六、安装RabbitMQ管理界面

默认是不安装管理界⾯的

  1. root@hcss-ecs-0bb1:~# rabbitmq-plugins enable rabbitmq_management#启动3个插件

在这里插入图片描述

七、启动服务并访问

1、通过 IP:port 访问界面

http://110.41.51.65:15672/ (15672 为默认端⼝号, 云服务器需要开启端⼝))
默认⽤户名和密码都是: guest
rabbitmq从3.3.0开始禁⽌使⽤guest/guest权限通过除localhost外的访问, 解除方法也有

对阿里云的服务器的防火墙进行设置
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、添加管理员用户

添加用户 admin , 密码: admin

  1. # rabbitmqctl add_user ${账号} ${密码}
  2. rabbitmqctl add_user admin admin

在这里插入图片描述

3、给用户添加权限

  1. #rabbitmqctl set_user_tags ${账号} ${角⾊名称}
  2. rabbitmqctl set_user_tags admin administrator

在这里插入图片描述
以下角色可选

  1. RabbitMQ

⽤户角⾊分为

  1. Administrator

  1. Monitoring

  1. Policymaker

  1. Management

  1. Impersonator

  1. None

共六种角色

  1. Administrator 超级管理员,可登陆管理控制台(启⽤management plugin的情况下),可查看所 有的信息,并且可以对⽤户,策略(policy)进⾏操作
  2. Monitoring 监控者,可登陆管理控制台(启⽤management plugin的情况下),同时可以查看 rabbitmq节点的相关信息(进程数,内存使⽤情况,磁盘使⽤情况等)。
  3. Policymaker 策略制定者,可登陆管理控制台(启⽤management plugin的情况下),同时可以对 policy进⾏管理。但⽆法查看节点的相关信息.
  4. Management 普通管理者,仅可登陆管理控制台(启⽤management plugin的情况下),⽆法看到 节点信息,也⽆法对策略进⾏管理.
  5. Impersonator 模拟者,⽆法登录管理控制台。
  6. None 其他⽤户,⽆法登陆管理控制台,通常就是普通的⽣产者和消费者

4、通过IP:port访问, 并使用刚才设置的用户名和密码登录

在这里插入图片描述

重点了解
在这里插入图片描述

这里的虚拟机是一个逻辑上的隔离 类似于 mysql 的database
在这里插入图片描述

5、通过set设置权限

在这里插入图片描述

6、添加用户

在这里插入图片描述


添加成功
在这里插入图片描述

7、添加虚拟机

在这里插入图片描述


在这里插入图片描述

使用哪个用户的设置的虚拟机,就对这个有一定的权限

在这里插入图片描述

在这里插入图片描述

标签: ubuntu rabbitmq ruby

本文转载自: https://blog.csdn.net/2201_75724363/article/details/144356065
版权归原作者 明志学编程- 所有, 如有侵权,请联系我们删除。

“Ubuntu 环境安装 之 RabbitMQ 快速入手”的评论:

还没有评论