• RabbitMQ入门 -- 阿里云服务器安装RabbitMQ


    镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

    一、什么是MQ?

    消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。

    其主要用途:不同进程Process/线程Thread之间通信。

    队列是一种先进先出的结构:FIFO

    把要传输的数据放在队列中。

    把数据放到消息队列叫生产者

    从消息队列取出消息叫做消费者

    二、什么是RabbitMQ

    RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。

    RabbitMQ的特性

    • 可伸缩性:集群服务
    • 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存

    三、使用RabbitMQ的好处

    解耦

    系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!

    系统A可以生成一个id,然后系统B需要这个id,系统A去调用了系统B

    过了段时间,系统C说也要系统A的id,那么这时接触系统B的引用,去讲id传给系统C

    这时又来了系统D,系统D也要系统A的id,系统A又解除了系统C,去调用了系统D,反反复复,很麻烦

    系统A的负责人觉得改来改去太麻烦了,没意思,跑路了。

    过段时间,公司来了位大佬,大佬说将系统A的id,存入消息队列,谁需要谁去拿,这样系统A就不用来回改动了,完美解决了参数调用问题!

    系统A不关心谁去调用id,只负责生产数据并存入消息队列,其它系统即使挂了或请求超时,也跟系统A没有任何关系

    这样就实现了系统A、B、C、D之间的解耦!

    异步

    再来看看这种情况,系统A还是直接调用系统B、C、D

    系统A:主要业务

    系统B:短信业务

    系统C:邮箱业务

    系统D:处理后续业务

    系统A下单成功后会去调用系统B,但是如果一个一个的调用,会大大的降低效率,假设每个业务执行时间100ms,那么4个业务执行完毕就是400ms,这种就被称为阻塞执行

    那么我们的消息队列采用了异步机制,当我们下单完成后,会去异步的调用其它业务,会极大的降低系统的执行时间,提升效率!

    削峰/限流

    例如:双十一大促销,这时的流量是很大很大的,并发很高,比如每秒5000个请求,假设现在又3台机器处理,并且每台机器每秒只能处理1500次请求,那么多出来的请求500请求,会将系统搞垮的,这时我们可以将多出来的请求放入消息队列中

    这样即使每秒有10000个请求,也不会将系统搞垮,会在消息队列中等待,由系统去分配请求处理

    四、Linux环境下手动安装RabbitMQ

    环境准备

    阿里云Centos7.6服务器

    lsb_release -a

      file

      在2022年5月,RabbitMQ官方发布推文宣称最新的版本已经不支持Centos7.x系列,但是我们可以通过下载之前支持的版本来部署!

      下载RabbitMQ RPM包

      RabbitMQ下载

      file

      下载成功如下

      file

      下载ErLang RPM包

      这里需要注意,下载的版本要和RabbitMQ对应,必须支持下载的ErLang版本

      file

      我们找到下载的是 3.8.13 ,支持的最低是 22.3 最高是 23.x

      下载ErLange

      file

      点击Download下载或单机wget复制下在Linux下 下载

      使用FileZilla上传至阿里云服务器

      阿里云服务器在 /usr/local 下新建 rabbitmq 文件夹

      file

      上传完成

      安装ErLang

      # 解压erlang文件
      rpm -Uvh erlang-23.2.7-2.el7.x86_64.rpm
      #安装erlang
      yum install -y erlang
      • 1
      • 2
      • 3

      file

      查看erlang版本

      erl -v

        file

        安装并启动RabbitMQ

        在安装RabbitMQ之前要安装一个插件

        yum install -y socat

          file

          解压并安装RabbitMQ

          # 解压
          rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm
          # 安装
          yum install -y rabbitmq-server
          • 1
          • 2
          • 3

          file

          启动RabbitMQ服务

          # 启动服务
          systemctl start rabbitmq-server
          # 查看当前的运行状态
          systemctl status rabbitmq-server
          # 重启服务
          systemctl restart rabbitmq-server
          # 停止服务
          systemctl stop rabbitmq-server
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7

          file

          可以看到,启动成功!

          五、手动安装RabbitMQWeb管理界面和授权

          安装并启动RabbitMQ管理插件

          # 安装RabbitMQWeb管理插件
          rabbitmq-plugins enable rabbitmq_management
          # 安装完成后重启rabbitmq服务
          systemctl restart rabbitmq-server
          • 1
          • 2
          • 3

          file

          启动成功,默认Web页面占用端口为 15672,我们去阿里云服务器控制台开放此端口

          file

          测试访问

          浏览器输入 http://您的ip地址:15672

          出现如下界面

          file

          默认登录账号密码 guest guest 登录测试

          file

          这个意思是我们只能通过本地来登录guest 账户

          下面给出解决方案

          添加账户

          # 添加一个用户
          rabbitmqctl add_user admin admin
          # 将用户设置为admin权限
          rabbitmqctl set_user_tags admin administrator
          • 1
          • 2
          • 3

          file

          再次测试访问

          file

          访问成功,手动安装成功!

          六、Linux环境下Docker安装RabbitMQ

          安装Docker

          先查看本机是否存在Docker,删除旧版本Docker

          查看docker 版本

          docker version

            file

            没有docker,我们执行以下命令,删除残余文件

            yum remove docker \
                           docker-client \
                           docker-client-latest \
                           docker-common \
                           docker-latest \
                           docker-latest-logrotate \
                           docker-logrotate \
                           docker-engine
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7

            进入Linux根目录,安装Docker

            # 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定的存储库。
            yum install -y yum-utils
            
            # 安装阿里云配置
            yum-config-manager \
                 --add-repo \
                 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6

            安装Docker 最新引擎

            yum install docker-ce docker-ce-cli containerd.io

              file

              输入y确认即可!

              配置阿里云加速镜像

              打开阿里云控制台,弹性计算 --> 容器与镜像服务

              file

              打开之后选择 镜像工具 --> 镜像加速器,复制内容即可

              file

              进入Linux服务器根据步骤配置镜像加速器

              # 创建docker文件夹
              sudo mkdir -p /etc/docker
              
              # 打开文件并配置内容
              sudo tee /etc/docker/daemon.json <<-'EOF'
              {
                "registry-mirrors": ["https://pfjide5p.mirror.aliyuncs.com"]
              }
              EOF
              
              # 重启服务
              sudo systemctl daemon-reload
              # 启动docker
              sudo systemctl restart docker
              • 1
              • 2
              • 3
              • 4
              • 5
              • 6
              • 7
              • 8
              • 9
              • 10
              • 11
              • 12
              • 13

              新建文件夹

              file

              配置内容,并重启服务

              file

              根据步骤一步步创建即可!

              安装并启动RabbitMQ

              # 获取镜像,这个是带着web页面的
              docker pull rabbitmq:management
              # 运行 rabbitmq 并映射端口 设置默认账户密码admin
              docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
              • 1
              • 2
              • 3

              file

              测试RabbitMQ

              浏览器输入 http://您的ip地址:15672 并输入admin admin

              出现如下界面

              file

              至此,在Docker内安装RabbitMQ完成!

              本文转自:https://blog.csdn.net/weixin_45526437/article/details/124797746

            • 相关阅读:
              java+springboot+vue电子数码产品商城推荐系统9wwcp
              【Pytorch实用教程】Pytorch中nn.Sequential的用法
              HCIP笔记——数据链路层协议
              软件应用开发安全指南
              常用稳压电源---DCDC和LDO
              linux添加环境变量
              如何对用户输入进行校验
              C语言--每日五道选择题--Day4
              零信任技术对网络安全行业的影响
              Web前端-Vue2+Vue3基础入门到实战项目-Day2(指令补充, computed计算属性, watch侦听器, 水果购物车)
            • 原文地址:https://blog.csdn.net/m0_60028455/article/details/125423269