docker安装RabbitMQ及安装延迟插件的方法(docker,rabbitmq,开发技术)

时间:2024-05-10 05:25:12 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    我这个安装攻略首先得保证服务器上安装过docker了 如果没安装docker请先去安装docker

    1.首先说一下什么是MQ

    MQ(message queue)字面意思上来说消息队列,FIFO先入先出,队列中存入的内容是message,是一种跨进程的通信机制,用于上下游传递消息。MQ 是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不用依赖其他服务。

    1.1为什么要用MQ/MQ有什么用

    1.1.1流量消峰

    比如说订单系统最多一次可以处理一万次订单,这个处理能力在正常时段下单时绰绰有余,但是在高峰期时如果有两万次下单操作系统是处理不了的只能限制订单超过一万次后不允许用户下单,但是如果使用消息队列做缓冲,我们可以取消这个限制,把一米内的订单分散成一段时间来处理,这个时候有些用户可能在下单十几秒后才能收到下单成功消息 但是这样总比不能让用户下单体验好

    1.1.2应用解耦

    以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成基于消息队列的方式后,系统间调用的问题会减少很多,比如物流系统因为发生故障,需要几分钟来修复。在这几分钟的时间里,物流系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。当物流系统恢复后,继续处理订单信息即可,中单用户感受不到物流系统的故障,提升系统的可用性

    docker安装RabbitMQ及安装延迟插件的方法

    1.1.3异步处理

    有些服务间调用是异步的,例如 A 调用 B,B 需要花费很长时间执行,但是 A 需要知道 B 什么时候可以执行完,一般有两种方式,A 过一段时间去调用 B 的查询 api 查询。或者 A 提供一个 callbackB 执行完之后调用 api 通知 A 服务。这两种方式都不是很优雅,使用消息总线,可以很方便解决这个问题,A 调用 B 服务后,只需要监听 B 处理完成的消息,当 B 处理完成后,会发送一条消息给 MQ,MQ 会将此消息转发给 A 服务。这样 A 服务既不用循环调用 B 的查询 api,也不用提供 callback同样 B 服务也不用做这些操作。A 服务还能及时的得到异步处理成功的消息。

    2.安装RabbitMq

    接下来使用docker进行RabbitMQ的安装

    2.1首先拉取镜像

    直接拉取镜像的话默认拉取最新的版本

    dockerpullrabbitmq:management

    2.2启动镜像

    注意修改用户名和密码

    dockerrun-d-p15672:15672-p5672:5672\ -eRABBITMQ_DEFAULT_VHOST=my_vhost\ -eRABBITMQ_DEFAULT_USER=admin\ -eRABBITMQ_DEFAULT_PASS=admin\ --hostnamemyRabbit\ --namerabbitmq\ rabbitmq

    参数说明:

    • -d:表示在后台运行容器;

    • -p:将容器的端口 5672(应用访问端口)和 15672 (控制台Web端口号)映射到主机中;

    • -e:指定环境变量:

    • RABBITMQ_DEFAULT_VHOST:默认虚拟机名;

    • RABBITMQ_DEFAULT_USER:默认的用户名;

    • RABBITMQ_DEFAULT_PASS:默认的用户密码;

    • --hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);

    • --name rabbitmq:设置容器名称;

    • rabbitmq:容器使用的镜像名称;

    启动完成后可以通过 docker ps 命令来查看容器是否启动
    还可以设置docker启动时自动启动

    dockerupdaterabbitmq--restart=always

    2.3启动 rabbitmq_management (RabbitMQ后台管理)

    //进入容器内部我这里使用容器名字进入也可以使用容器iddockerexec-itrabbitmq/bin/bash----------------------------------//开启web后台管理界面rabbitmq-pluginsenablerabbitmq_management
    2.3.1打开RabbitMQweb界面
    1. 浏览器输入地址 hhtp://ip:15672 即可访问后台管理界面 这里的ip为运行RabbitMQ的服务器ip

    2. 默认的用户名和密码都是guest

    3. 但由于我们启动的时候设置了默认的用户名和密码,所以我们可以使用设置的用户名和密码登录。

    docker安装RabbitMQ及安装延迟插件的方法

    如果无法访问 可以尝试打开防火墙 如果是在阿里或者腾讯之类的服务器 要打开安全组的端口!!
    到这里 我们docker安装RabbitMQ就完成了 接下来进行延迟插件的安装

    3.插件下载并安装

    下载地址 https://www.rabbitmq.com/community-plugins.html

    docker安装RabbitMQ及安装延迟插件的方法

    docker安装RabbitMQ及安装延迟插件的方法

    进入web端后左上角有显示当前安装的RabbitMQ版本

    docker安装RabbitMQ及安装延迟插件的方法

    我这里安装的是3.10版本所以我直接下载最新版的插件就可以

    docker安装RabbitMQ及安装延迟插件的方法

    安装完成后用工具将插件文件上传到服务器上

    将刚刚上传的插件拷贝到容器内plugins目录下

    dockercp/root/rabbitmq_delayed_message_exchange-3.10.2.ezrabbitmq:/plugins

    上传之后进入容器内部

    //进入容器我这里使用容器名字也可以用容器id进入dockerexec-itrabbitmq/bin/bash-------------------------------------//移动到plugins目录下cdplugins-------------------------------------//查看是否上传成功ls

    docker安装RabbitMQ及安装延迟插件的方法

    然后我们启动插件

    rabbitmq-pluginsenablerabbitmq_delayed_message_exchange

    docker安装RabbitMQ及安装延迟插件的方法

    安装成功后 退出容器

    exit

    然后重启容器

    //我这里还是使用容器名称也可以使用容器iddockerrestartrabbitmq

    容器启动成功之后,登录RabbitMQ的管理界面(ip:15672 访问web界面),找到ExchangesTab页。点击Add a new exchange,在Type里面查看是否有x-delayed-message选项,如果存在就代表插件安装成功。

    docker安装RabbitMQ及安装延迟插件的方法

     </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
    本文:docker安装RabbitMQ及安装延迟插件的方法的详细内容,希望对您有所帮助,信息来源于网络。
    上一篇:Java数据结构之二叉搜索树实例分析下一篇:

    5 人围观 / 0 条评论 ↓快速评论↓

    (必须)

    (必须,保密)

    阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18