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

打印 上一主题 下一主题

主题 1811|帖子 1811|积分 5433

1、场景简介

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

  • 云消息队列 RabbitMQ 版是一款基于高可用分布式存储架构实现的 AMQP 0-9-1 协议的消息产品,能够兼容开源 RabbitMQ 客户端。与开源 RabbitMQ 相比,能够办理各种稳固性痛点(比方消息堆积、脑裂等题目),同时具备高并发、分布式、灵活扩缩容等云消息服务优势。
  • 云消息队列 RabbitMQ 版 Serverless 系列实例能力和预付费系列的企业版能力一样,但 Serverless 系列实例具有更高的弹性上限,且是按量后付费的计费方式,无需提前预留资源,按照实际使用量收费,助您降本增效。
  • 云消息队列 RabbitMQ 版 Serverless 系列实例支持根据实际使用的资源量按量后付费,您可以弹性使用资源,无需提前预留。
(实行总费用不超过0.5元(包含收发消息次数25万次))
2、实行架构和流程

2.1、实行架构

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

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

2.2、实行流程

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

前提条件:
开通阿里云账号,已通过实名认证并且账户余额大于100,开通使用云消息队列RabbitMQ版Serverless系列实例(实行总费用不超过0.5元(包含收发消息次数25万次))。
3、创建实行资源


  • 在实行页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及开释实操相关资源后,单击开始实操。
  • 创建资源需要5分钟左右的时间,请您耐心等待。
  • 在云产品资源列表,您可以检察本场景涉及的云产品资源信息

    创建消息队列rabbitmq实例成功!

4、创建阿里云AccessKey


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


  • 根据界面提示完成安全验证。
  • 在创建AccessKey对话框,检察AccessKey ID和AccessKey Secret。
您可以单击下载CSV文件,下载AccessKey信息。单击复制,复制AccessKey信息。


  • 选中我已保存好AccessKey Secret。
  • 单击确定。
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属性路由消息.
范例阐明:

  • Direct Exchange 根据 Routing Key 完全匹配的规则路由消息。Direct Exchange 适用于通过简单字符标识符区分消息的场景。Direct Exchange 常用于单播路由。
  • Topic Exchange 根据 Routing Key 通配符匹配的规则路由消息。Topic Exchange 适用于通过通配符区分消息的场景。Topic Exchange常用于多播路由。比方,使用Topic Exchange分发有关于特定地理位置的数据。
  • Fanout Exchange 忽略 Routing Key 的匹配规则将消息路由到全部与该 Exchange 界说过 Binding 的全部 Queue。Fanout Exchange 适用于广播消息的场景。比方,分发系统使用 Fanout Exchange 来广播各种状态和设置更新。
  • Headers Exchange 可以被视为 Direct Exchange 的另一种表现情势。Headers Exchange 可以像 Direct Exchange 一样工作,差别之处在于 Headers Exchange 使用 Headers 属性代替 Routing Key 进行路由匹配。Headers Exchange 适用于通过多组 Headers 属性区分消息的场景。Headers Exchange 常用于多播路由。比方,涉及到分类或者标签的新闻更新。
  • 消息队列RabbitMQ版还支持x-delayed-message Exchange。通过声明该类Exchange,您可以自界说消息的Header属性x-delay来指定消息延时投递的时间段,单元为毫秒。消息将在x-delay中界说的时间段后,根据被投递到对应的Queue。路由规则取决于x-delayed-type中指定的Exchange范例。
  • 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


  • 打开IntelliJ IDEA,使用Git克隆RabbitMQ开源客户端demo项目。
    首先需要检查确认已安装Git。若为安装Git,您可参考下方步调进行安装。
    在插件(Plugins)的Marketplace中,搜刮GitToolBox,选中GitToolBox并单击右侧的安装(Install)。

  • 在IntelliJ IDEA中,单击Get from Version Control。

    在Get from Version Control面板,Version Control选择Git,URL填写项目长途仓库地址https://gitee.com/RongtongJin/amqp-java-demo.git,Directory选择恣意一个本地文件夹或新建一个本地文件夹,单击Clone。


  • 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、检察消息轨迹





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表