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

文章目录

    • 1、场景简介
    • 2、实验架构和流程
      • 2.1、实验架构
      • 2.2、实验流程
    • 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 版 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、查看消息轨迹

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/891507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Python flask的豆瓣电影可视化系统,豆瓣电影爬虫系统

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不…

Mysql(七) --- 索引

文章目录 前言1.简介1.1.索引是什么?1.2.为什么使用索引? 2.索引应该使用什么数据结构?2.1.Hash2.2.二叉搜索树2.3.N叉树2.4.B树2.4.1. 简介2.4.2. B树的特点2.4.3. B树和B树的对比 3.Mysql中的页3.1.为什么要使用页3.2.页文件头和页文件尾3.3.页主体3.…

【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门

目录 1、线程初识 1.1线程的概念 1.2.关于线程和进程的进一步理解 1.3.线程的设计理念 1.4.进程vs线程(图解) 1.5地址空间的第四谈 2.线程的控制: 2.1.关于线程控制的前置知识 2.2创建线程的系统调用: 这个几号手册具体…

JavaScript | 定时器(setInterval和clearInterval)的使用

效果图如下&#xff1a; 当用户第一次看到这个页面时&#xff0c;按钮是不可点击的&#xff0c;并显示一个5秒的倒计时。倒计时结束后&#xff0c;按钮变为可点击状态&#xff0c;并显示“同意协议”。这样做的目的是确保用户有足够的时间阅读用户协议。 <!DOCTYPE html>…

机器学习:知识蒸馏(Knowledge Distillation,KD)

知识蒸馏&#xff08;Knowledge Distillation&#xff0c;KD&#xff09;作为深度学习领域中的一种模型压缩技术&#xff0c;主要用于将大规模、复杂的神经网络模型&#xff08;即教师模型&#xff09;压缩为较小的、轻量化的模型&#xff08;即学生模型&#xff09;。在实际应…

Vue(3) 组件

文章目录 对组件的理解单文件组件非单文件组件基本使用几个注意点组件的嵌套VueComponent构造函数一个重要的内置关系 组件的自定义事件全局事件总线安装全局事件总线使用事件总线解绑事件消息订阅与发布简介使用步骤范例 $nextTick插槽1.默认插槽2.具名插槽作用域插槽 对组件的…

[linux 驱动]网络设备驱动详解

目录 1 描述 2 结构体 2.1 net_device 2.2 sk_buff 2.3 net_device_ops 2.4 ethtool_ops 3 相关函数 3.1 网络协议接口层 3.1.1 dev_queue_xmit 3.1.2 netif_rx 3.1.3 alloc_skb 3.1.4 kfree_skb 3.1.5 skb_put 3.1.6 skb_push 3.1.7 skb_reserve 3.2 网络设备驱…

使用OpenCV实现基于EigenFaces的人脸识别

引言 人脸识别技术近年来得到了飞速的发展&#xff0c;它被广泛应用于安全监控、门禁系统、智能设备等领域。其中&#xff0c;基于特征脸&#xff08;EigenFaces&#xff09;的方法是最早期且较为经典的人脸识别算法之一。本文将介绍如何使用Python和OpenCV库实现一个简单的人…

AI大模型面经——以医疗领域为例,整理RAG基础与实际应用中的痛点

前言 谈到大模型在各垂直领域中的应用&#xff0c;一定离不开RAG&#xff0c;本系列开始分享一些RAG相关使用经验&#xff0c;可以帮助大家在效果不理想的时候找到方向排查或者优化。 本系列以医疗领域为例&#xff0c;用面试题的形式讲解RAG相关知识&#xff0c;开始RAG系列…

Spring与Spring Boot之间的区别

Spring和Spring Boot是用于开发Java企业应用的两个主流框架。虽然它们都属于Spring生态系统的一部分&#xff0c;但是它们各自有不同的使用场景和特点。 在本文中&#xff0c;我们将探讨Spring与Spring Boot之间的差异&#xff0c;针对他们之间特性的差异&#xff0c;做一个详…

windows10系统-在线设置账户有效期

.a.打开微软官网 点击右上角的登录按钮 .b.输入自己idea账户名&#xff0c;然后点击下一步 .c.使用邮箱接收验证码 输入验证码->登录 .d.点击右上角的个人账户->我的 Microsoft 账户 .e.点击更改密码即可 .f.修改完密码之后&#xff0c;点击保存即可。 微软的在线账户和…

XGBoost回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出

回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出 目录 回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 XGBoost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,旨在高效、…

【python学习】1-1 python软件安装

1。搜索python官网&#xff0c;点击下载进行下载安装包。 2.双击.exe文件&#xff0c;如图步骤 3.winR输入cmd&#xff0c;在弹出黑框中输入python显示如图安装好。

linux线程 | 同步与互斥(上)

前言&#xff1a;本节内容主要是线程的同步与互斥。 本篇文章的主要内容都在讲解互斥的相关以及周边的知识。大体的讲解思路是通过数据不一致问题引出锁。 然后谈锁的使用以及申请锁释放锁的原子性问题。 那么&#xff0c; 废话不多说&#xff0c; 现在开始我们的学习吧&#x…

基于element-ui的upload组件与阿里云oss对象存储的文件上传(采用服务端签名后直传的方式)

服务端签名后直传图解 步骤 1 开通阿里云OSS对象存储服务&#xff0c;创建新的Bucket 2 创建子账户获取密钥 创建用户 添加权限 后端 1 新建一个第三方服务的模块 third-party pom文件 <?xml version"1.0" encoding"UTF-8"?> <project x…

【工程测试技术】第4章 常用传感器分类,机械式,电阻式,电容式,电感式,光电式传感器

上理考研周导师的哔哩哔哩频道 我在频道里讲课哦 目录 4.1 常用传感器分类 4.2 机械式传感器及仪器 4.3 电阻式、电容式与电感式传感器 1.变阻器式传感器 2.电阻应变式传感器 3.固态压阻式传感器 4.典型动态电阻应变仪 4.3.2 电容式传感器 1.变换原理 2.测量电路 …

ScriptableObject基本使用

使用方法 自定义类继承ScriptableObject 可以在类内部增加数据或者数据类&#xff0c;一般用于配置 注意事项 给继承ScriptableObject的类增加CreateAssetMenu特性。 CreateAssetMenu一般默认三个参数 第一个参数是父目录 第二个参数是父目录的子选项 第三个参数是可以…

[瑞吉外卖]-05菜品模块

文件上传下载 介绍 文件上传也称为upload&#xff0c;是指将本地图片、视频、音频等文件上传到服务器上, 可以供其他用户浏览或下载 前端组件库提供了上传组件&#xff0c;但是底层原理还是基于form表单的文件上传。 服务端要接收客户端上传的文件&#xff0c;通常都会使用Ap…

QT--QPushButton设置文本和图标、使能禁能、信号演示

按钮除了可以设置显示文本之外&#xff0c;还可以设置图标 文本 可以获取和设置按钮上显示的文本 // 获取和设置按钮的文本 QString text() const void setText(const QString &text)该属性&#xff0c;既可以在 Qt 设计师右侧的属性窗口中修改&#xff0c;也可以在代码…

深度学习调参技巧总结

文章目录 深度学习调参技巧总结1.寻找合适的学习率2.优化算法选择3.模型对不同超参数的敏感性4.训练技巧参考 深度学习调参技巧总结 1.寻找合适的学习率 学习率&#xff08;Learning Rate, LR&#xff09;是机器学习模型训练中极其重要的超参数。它直接影响模型的收敛速度和最…