快速学会使用云消息队列RabbitMQ版

更新时间:
复制为 MD 格式

本实验将带您体验使用云消息队列RabbitMQServerless系列实例进行消息收发、查看实例指标和消息轨迹。

场景简介

在本实验场景中,将创建一个云消息队列RabbitMQServerless系列实例,使用RabbitMQ开源客户端生产和消费消息,再查看Dashboard上实例的指标变化,以及查看消息轨迹。

实验架构

消息在云消息队列 RabbitMQ 版的组件之间流动的过程如下:

  1. 生产者向Exchange发送消息。

  2. Exchange根据消息属性将消息路由到Queue进行存储。

  3. 消费者从Queue拉取消息进行消费。

image

实验流程

本实验流程可参考云消息队列RabbitMQ版进行消息收发的基本操作流程,如下图所示。但为了保证您能顺利完成本实验,请按照实验手册进行具体操作。

image

背景知识

本场景主要涉及以下云产品和服务:

  • 云消息队列RabbitMQ

    云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1协议的消息产品。云消息队列 RabbitMQ 版兼容开源 RabbitMQ 客户端,解决开源各种稳定性痛点(例如消息堆积、脑裂等问题),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。

前提条件

云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。

重要

本实验使用云消息队列RabbitMQServerless系列实例,实验总费用不超过0.5元(包含收发消息次数25万次)。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。

进入实操前,请确保阿里云账号满足以下条件:

  • 已通过实名认证并且账户余额充足。

  • 云资源产生的费用需您自行承担,云起实验室不会向您征收额外费用。

  • 所有实验操作将保留至您的账号,请谨慎操作。

  • 实操结束后,您可以选择继续付费保留资源,或参考手册自动/手动释放资源。

创建实验资源

  1. 在实验页面,勾我已阅读并同意《阿里云云起实践平台服务协议》我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操

  2. 创建资源需要5分钟左右的时间,请您耐心等待。

  3. 云产品资源列表,您可以查看本场景涉及的云产品资源信息。

    image

创建阿里云AccessKey

重要

在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。

  1. 前往AccessKey管理

  2. 不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

    image

  3. AccessKey页面,单击创建AccessKey

    image

  4. 根据界面提示完成安全验证。

  5. 创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

    image

  6. 创建AccessKey对话框,保存AccessKey IDAccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定

    image

创建静态用户名密码

  1. 云产品资源列表的消息队列区域,单击管理

    image

  2. 在左侧导航栏中,单击静态用户名密码

    image

  3. 静态用户名密码页面,单击创建用户名密码

    image

  4. 创建用户名密码面板,填写上一步创建的AccessKey IDAccessKey Secret,单击确定

    image

    返回如下页面,您可查看到创建的用户名和密码。

    image

创建Vhost、Exchange、Queue并绑定关系

  1. 在左侧导航栏中,单击Vhost列表

    image

  2. Vhost列表页面,单击创建Vhost

    image

  3. 创建Vhost面板,Vhost名称设置为yunQi-vhost

    image

  4. 在左侧导航栏中,单击Exchange列表

    image

  5. Exchange列表页面的Vhost yunQi-vhost下,单击创建Exchange

    image

  6. 创建Exchange面板,Exchange名称设置为yunQi-exchange类型选择directInternal选择,单击确定

    说明

    更多Exchange类型说明,详情请参见Exchanges and Exchange Types

    image

  7. 在左侧导航栏中,单击Queue列表

    image

  8. Queue列表页面的Vhost yunQi-vhost下,单击创建Queue

    image

  9. 创建Queue面板,Queue名称设置为yunQi-queueAuto delete选择,其他选项保持默认值即可,单击确定

    image

  10. 创建ExchangeQueue的绑定关系。

    1. 在左侧导航栏中,单击Exchange列表

      image

    2. Exchange列表页面,单击yunQi-exchange

      image

    3. yunqi-exchange详情页面的绑定关系区域,单击添加绑定

      image

    4. 添加绑定面板,绑定目标类型选择Queue绑定目标选择创建的yunQi-queueRouting Key设置为yunQi-routing-key,单击确定

      说明

      发送消息时设置的Routing Key需要和当前绑定关系中的Routing Key完全匹配,消息才能路由到Queue。本实验设置路由到yunQi-queueRouting KeyyunQi-routing-key。

      image

使用RabbitMQ开源客户端生产和消费消息

说明

云消息队列RabbitMQ版与开源RabbitMQ完全兼容,请关注SDK使用注意事项。更多语言SDK,请参见SDK列表及示例代码

  1. 打开IntelliJ IDEA,使用Git克隆RabbitMQ开源客户端demo项目。

    1. 首先需要检查确认已安装Git。若为安装Git,您可参考下方步骤进行安装。

      1. 插件(Plugins)Marketplace中,搜索GitToolBox,选中GitToolBox并单击右侧的安装(Install)

        11ee8ae5bbcc5e3cc9f623026f80d287

      2. 找到依赖的插件对话框中,单击是(Y)

        1dfcee8e0b52b85b38e0b1e5da79ff13

      3. GitToolBox中,单击重启IDE(Restart IDE)

        893eb9e10ac13e498e1c6537ebde4b78

      4. IntelliJ IDEA和插件更新对话框中,单击重启

        6614424ea3582459f7cf554fbb909c6e

    2. IntelliJ IDEA中,单击Get from Version Control

      说明

      如果您已打开一个项目,可以在IntelliJ IDEA右上角选择File > New > Project from Version Control

      image

    3. Get from Version Control面板,Version Control选择GitURL填写项目远程仓库地址https://gitee.com/RongtongJin/amqp-java-demo.gitDirectory选择任意一个本地文件夹或新建一个本地文件夹,单击Clone

      说明
      • 导入RabbitMQ开源客户端demo项目后,在IntelliJ IDEA中请您使用Maven下载依赖。

      image

  2. Clone完成后进入项目,选择amqp-java-demo > src > main > java,双击Config.java文件,将代码中HOSTNAME、USERNAME、PASSWORD三个参数值替换为阿里云RabbitMQ实例的公网接入点、静态用户名和静态密码。

    说明

    您可在云产品资源列表查看阿里云RabbitMQ实例的公网接入点。静态用户名和静态密码为您在“创建静态用户名密码”小节中创建的用户名和密码。

    image

  3. IntelliJ IDEA中,运行amqp-java-demo文件下的ProducerTest.java文件,持续发送消息。

    image

  4. IntelliJ IDEA中,运行 amqp-java-demo文件下的ConsumerTest.java文件,持续接收消息。

    image

  5. 观察IntelliJ IDEA控制台打印的消息收发记录。

    image

    image

查看Dashboard的实例指标变化

  1. 返回消息队列RabbitMQ版控制台页签,在左侧导航栏中,单击Dashboard

    image

  2. 服务关联角色对话框中,单击授权

    说明

    如果您是首次使用Dashboard功能,需要进行授权。

    image

  3. 开通ARMS服务对话框中,单击开通

    说明

    如果您是首次使用Dashboard功能,需要开通ARMS服务。

    image

  4. 查看RabbitMQ实例的概览指标,可以查看每个Queue的消息堆积数,消息速率等指标。

    image

  5. 在左侧导航栏中,单击Queue列表

    image

  6. Queue列表页面,单击yunQi-queue

    image

  7. yunqi-exchange详情页面,单击Dashboard

    image

  8. Dashboard页签,可以查看指定Queue的详细指标变化趋势,用于定位问题。

    image

查看消息轨迹

  1. 在左侧导航栏中,单击消息轨迹

    image

  2. 在消息轨迹页面,您可以根据按Message ID查询和按Queue查询。

    • Message ID查询:根据IntelliJ IDEA控制台打印的msgId可以精确查询对应消息的轨迹。

      image

    • Queue查询:根据Queue名称可以查询对应Queue下所有消息的轨迹。

      image

  3. 选择任意一条消息的轨迹,单击轨迹详情,查询对应消息的生产和投递轨迹详情。

    image

    image

清理资源

  • 在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除阿里云AccessKey,再结束实操。

    • 删除阿里云AccessKey。

      1. 前往AccessKey管理

      2. 不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey

        image

      3. AccessKey页面,找到目标AccessKey,单击右侧操作列下的禁用

        image

      4. 禁用对话框中,单击禁用

      5. AccessKey页面,找到目标AccessKey,单击右侧操作列下的删除

        image

      6. 删除对话框中,输入当前AccessKeyID,单击删除

    • 删除阿里云AccessKey后,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定

      image

  • 在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。

    image

后续

  • 如果您想了解更多有关云消息队列 RabbitMQ 版的产品功能和操作,请参见操作指南

  • 如果您希望从开源 RabbitMQ 迁移到云消息队列RabbitMQ 版,请参见开源RabbitMQ迁移上云