【实践】快速学会使用阿里云消息队列RabbitMQ版

1、场景简介

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

云消息队列RabbitMQ版

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

  2. 云消息队列 RabbitMQ 版 Serverless 系列实例能力和预付费系列的企业版能力一样,但 Serverless 系列实例具有更高的弹性上限,且是按量后付费的计费方式,无需提前预留资源,按照实际使用量收费,助您降本增效。

  3. 云消息队列 RabbitMQ 版 Serverless 系列实例支持根据实际使用的资源量按量后付费,您可以弹性使用资源,无需提前预留。

(实验总费用不超过0.5元(包含收发消息次数25万次))

2、实验架构和流程

2.1、实验架构

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

  1. 生产者向Exchange发送消息。
  2. Exchange根据消息属性将消息路由到Queue进行存储。
  3. 消费者从Queue拉取消息进行消费。

在这里插入图片描述

2.2、实验流程

本实验流程可参考云消息队列RabbitMQ版进行消息收发的基本操作流程,如下图所示。但为了保证您能顺利完成本实验,请按照实验手册进行具体操作。
在这里插入图片描述
前提条件:

开通阿里云账号,已通过实名认证并且账户余额大于100,开通使用云消息队列RabbitMQ版Serverless系列实例(实验总费用不超过0.5元(包含收发消息次数25万次))。

3、创建实验资源

  1. 在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
  2. 创建资源需要5分钟左右的时间,请您耐心等待。
  3. 在云产品资源列表,您可以查看本场景涉及的云产品资源信息
    在这里插入图片描述
    创建消息队列rabbitmq实例成功!
    在这里插入图片描述

4、创建阿里云AccessKey

  1. 前往AccessKey管理。
  2. 在安全提示对话框,阅读安全提示信息,然后单击继续使用AccessKey。
  3. 在AccessKey页面,单击创建AccessKey。

在这里插入图片描述

  1. 根据界面提示完成安全验证。
  2. 在创建AccessKey对话框,查看AccessKey ID和AccessKey Secret。

您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。
在这里插入图片描述

  1. 选中我已保存好AccessKey Secret。
  2. 单击确定。

5、创建静态用户名密码

在这里插入图片描述
在创建用户名密码面板,填写上一步创建的AccessKey ID和AccessKey Secret,单击确定。
在这里插入图片描述
返回如下页面,您可查看到创建的用户名和密码。
在这里插入图片描述

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

6.1、Vhost 的作用

虚拟主机(Virtual Host),用作逻辑隔离,分别管理各自的Exchange、Queue和Binding,使得应用安全的运行在不同的Vhost实例上,相互之间不会干扰。一个实例下可以有多个Vhost,一个Vhost里面可以有若干个Exchange和Queue。生产者和消费者连接消息队列RabbitMQ版需要指定一个Vhost。

6.2、创建Vhost

在这里插入图片描述

6.3、Exchange 的作用

Exchange是消息队列RabbitMQ版的消息路由代理。生产者向消息队列RabbitMQ版发送消息时,不会直接将消息发送到Queue,而是先将消息发送到Exchange,由Exchange将消息路由到一个或多个Queue。Exchange根据Routing Key和Headers属性路由消息.

类型说明:

  1. Direct Exchange 根据 Routing Key 完全匹配的规则路由消息。Direct Exchange 适用于通过简单字符标识符区分消息的场景。Direct Exchange 常用于单播路由。
  2. Topic Exchange 根据 Routing Key 通配符匹配的规则路由消息。Topic Exchange 适用于通过通配符区分消息的场景。Topic Exchange常用于多播路由。例如,使用Topic Exchange分发有关于特定地理位置的数据。
  3. Fanout Exchange 忽略 Routing Key 的匹配规则将消息路由到所有与该 Exchange 定义过 Binding 的所有 Queue。Fanout Exchange 适用于广播消息的场景。例如,分发系统使用 Fanout Exchange 来广播各种状态和配置更新。
  4. Headers Exchange 可以被视为 Direct Exchange 的另一种表现形式。Headers Exchange 可以像 Direct Exchange 一样工作,不同之处在于 Headers Exchange 使用 Headers 属性代替 Routing Key 进行路由匹配。Headers Exchange 适用于通过多组 Headers 属性区分消息的场景。Headers Exchange 常用于多播路由。例如,涉及到分类或者标签的新闻更新。
  5. 消息队列RabbitMQ版还支持x-delayed-message Exchange。通过声明该类Exchange,您可以自定义消息的Header属性x-delay来指定消息延时投递的时间段,单位为毫秒。消息将在x-delay中定义的时间段后,根据被投递到对应的Queue。路由规则取决于x-delayed-type中指定的Exchange类型。
  6. x-consistent-hash:哈希取值 :RoutingKey / Header 值

6.4、创建Exchange

在这里插入图片描述

6.5、Queue 的作用

消息队列,存储消息的缓冲区,每个消息都会被投入到一个或多个Queue里。

6.6、创建Queue

在这里插入图片描述

6.7、创建Exchange和Queue的绑定关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

7.1 idea创建demo

  1. 打开IntelliJ IDEA,使用Git克隆RabbitMQ开源客户端demo项目。
    首先需要检查确认已安装Git。若为安装Git,您可参考下方步骤进行安装。
    在插件(Plugins)的Marketplace中,搜索GitToolBox,选中GitToolBox并单击右侧的安装(Install)。
    在这里插入图片描述
  2. 在IntelliJ IDEA中,单击Get from Version Control。
    在这里插入图片描述
    在Get from Version Control面板,Version Control选择Git,URL填写项目远程仓库地址https://gitee.com/RongtongJin/amqp-java-demo.git,Directory选择任意一个本地文件夹或新建一个本地文件夹,单击Clone。

在这里插入图片描述

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

在这里插入图片描述

7.2 运行ProducerTest持续发送消息

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

在这里插入图片描述

7.3 运行ConsumerTest持续接收消息

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

在这里插入图片描述

7.4 查看消息收发记录

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

在这里插入图片描述
在这里插入图片描述

8、查看Dashboard的实例指标变化

返回消息队列RabbitMQ版控制台页签,在左侧导航栏中,单击Dashboard。
在这里插入图片描述

9、查看消息轨迹

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hhzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值