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

devtools/2024/12/22 20:42:00/

文章目录

    • 1.场景简介
    • 2.实验架构
    • 3.实验流程
    • 3.创建实验资源
    • 4.创建阿里云AccessKey
    • 5.创建静态用户名密码
    • 6.创建Vhost、Exchange、Queue并绑定关系
      • 6.1、Vhost 的作用
      • 6.2、创建Vhost
      • 6.3、Exchange 的作用
      • 6.4、创建Exchange
      • 6.5、Queue 的作用
      • 6.6、创建Queue
      • 6.7、创建Exchange和Queue的绑定关系
    • 7.使用RabbitMQ开源客户端生产和消费消息
      • 7.1 idea创建demo
      • 7.2 运行ProducerTest持续发送消息
    • 7.3 运行ConsumerTest持续接收消息
    • 7.4 查看消息收发记录
    • 8.查看Dashboard的实例指标变化
    • 9.查看消息轨迹

1.场景简介

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

云消息队列RabbitMQ版

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

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

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

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

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

2.实验架构

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

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

在这里插入图片描述

3.实验流程

本实验流程可参考云消息队列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.查看消息轨迹

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/devtools/123306.html

相关文章

Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式

单机模式 单机模式是Hadoop最简单的运行模式。在单机模式下,所有Hadoop组件都运行在单个机器上,包括HDFS、MapReduce等。由于只有一个节点参与计算,单机模式适用于开发和测试阶段,不适合用于处理大规模数据。在单机模式下&#xf…

宠物咖啡馆在线平台:SpringBoot框架的创新设计

3系统分析 3.1可行性分析 通过对本基于Spring Boot的宠物咖啡馆平台的设计与实现实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于Spring Boot的宠物咖啡馆…

利基营销:如何为小众受众制定内容营销策略?AIGC大模型创新思维数字化转型商业模式专家培训讲师谈短视频内容社私域数字经济人工智能

了解利基营销 什么是利基营销? 简单来说,利基营销就是专注于特定范围的潜在客户群,而不是针对广泛的人群。 实际上,利基营销可以比作为拥有露营装备的人而不是所有热爱户外活动的人定制内容。露营爱好者会欣赏专门针对他们的需…

JMeter

通过AI可知: Apache JMeter 是一款开源的、基于Java的压力测试和性能测试工具,它主要用于对软件和服务器进行性能测试和负载测试。JMeter 可以模拟多种用户请求,包括但不限于Web请求、数据库请求、FTP请求等,以评估系统在高负载情…

SQL NULL 值

SQL NULL 值 概述 在SQL(Structured Query Language)中,NULL值是一个特殊的标记,用于表示缺失或未知的值。理解NULL值的概念对于数据库设计和查询非常重要,因为它们可以影响查询的结果和性能。本文将详细介绍SQL中NULL值的概念、使用场景以及如何处理它们。 NULL值的含…

101 公司战略的基本概念

公司战略的概念 传统概念(战略是终点途径):计划性、全局性、长期性现代概念(战略是途径):应变性、竞争性、风险性综合概念(前二者的折中):预先性、反应性公司的使命与目标…

Spring源码二IOC容器源码

文章目录 Spring IOC初始化源码剖析1.prepareRefresh2.obtainFreshBeanFactory3.prepareBeanFactory4.postProcessBeanFactory5.invokeBeanFactoryPostProcessors6.registerBeanPostProcessors7.initMessageSource8.initApplicationEventMulticaster9.onRefresh10.registerList…

虚拟化数据恢复—互斥不当导致vmfs卷损坏的数据恢复案例

虚拟化数据恢复环境: 某企业信息管理平台, 几台VMware ESX Server主机共享一台存储设备,大约有几十台虚拟机。 虚拟化故障&原因: Vcenter报告虚拟磁盘丢失。管理员通过ssh远程到ESX中执行fdisk -l命令查看磁盘,发…