消息服务MNS之初见

news2024/12/23 4:07:47

消息服务MNS

说到消息服务MNS,那么消息服务MNS是什么呢?为什么会有消息服务MNS这款产品的产生呢?

什么是消息服务MNS

消息服务-阿里云消息服务MNS(Message Service)是一种高效、可靠、安全、便捷和可弹性扩展的分布式消息服务。消息服务MNS能够帮助开发者在应用的分布式组件之间自由地传递数据、通知消息,从而构建松耦合系统。消息服务MNS支持队列模型和主题模型。

消息服务MNS产生

简单来说就是说传统的单体系统架构、单体数据库已经无法满足海量的用户需求,这个时候就需要对原有系统进行升级改造,对大规模的流量进行分解到不同的应用服务中,各个应用服务之间通过消息服务的方式来实现数据传递、通知消息,从而达到松耦合的目的。

消息服务MNS的模型

队列模型和主题模型,其中对列模型就是和我们经常听到的消息队列中间件Kafka、RocketMQ、ActiveMQ、RabbitMQ的基本原理相似,生产者发送消息到队列中,消费者去队列中取出消息进行消费,消息消费完成之后从队列中删除,关于消息服务MNS队列模型的更多术语可以参考文档 消息服务MNS队列模型的基本概念及解释_消息服务MNS-阿里云帮助中心;那么主题模型呢?主题模型就是说比队列模型多了一步,就是在生产者发送消息之前需要先有主题,然后生产者往主题发布消息,消息消费者需要先订阅主题,之后才能从从主题接收消息消费消息。

消息服务MNS基本操作

控制台地址: 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,打开控制台,搜索消息服务MNS

免费开通【消息服务MNS】

注意:这里消息服务MNS默认是按量收费。如果使用量较大的建议选择合适的套餐开通。

队列模型基本操作

创建队列

点击【队列列表】,选择【创建队列】,打开如图页面

参数说明:

  • 名称:队列名称。
  • 消息最大长度:发送到队列的消息体的最大长度。
  • 长轮询时间:当队列中没有消息时,该队列的ReceiveMessage请求的最大等待时长。
  • 消息可见性超时时间:消息从队列中取出后从Active状态变成Inactive状态后的持续时间。
  • 消息保存时长:消息在队列中的最长存活时间。从发送到队列开始经过此参数指定的时间后,不论消息是否被取出都将被删除。
  • 消息定时时间:发送到队列的所有消息将延后此参数指定的时间后被消费。
  • 启用日志功能:是否开启日志管理功能。

这里是测试用,参数无需特别设置,默认的即可,点击【确定】。

收发消息

点击【消息队列】列表右侧【更多】,选择【收发消息】

输入消息内容,点击【发送消息】,消息发送成功后会收到返回的消息id,同时刷新页面会看到可用消息变为1

点击【接收消息】,会看到刚才的消息被消费,同时可用消息为0

当然,如果你想删除当前队列,可以直接返回列表页选择【更多】-【删除】即可。

主题模型基本操作

主题模型比队列模型多了一步主题的操作,当然也是需要先有消息队列的

创建队列

创建队列的操作和上面一样,这里创建topic01的队列,参数选择默认参数,

这里是个人测试,可以不用开启日志服务,毕竟日志服务也是收费的。

创建主题

点击【主题列表】-【创建主题】,输入主题名称确认。

主题创建完成之后会自动跳转的主题详情页

创建订阅

点击【创建订阅】,输入对应内容,点击【确定】

参数说明:

  • 名称:订阅名称。
  • 推送类型:订阅的推送类型。默认为队列。
  • 接收端地址:推送类型的接收端地址。
  • 可选:消息过滤标签:通过设置的标签对消息进行过滤。
  • 重试策略:向接收端推送消息出现错误时的重试策略。重试策略支持选择以下任一类型:
    • 退避重试
    • 指数衰减重试
  • 消息推送格式:设置推送消息到接收端的消息格式。消息推送格式可以选择以下任一类型:
    • SIMPLIFIED
    • JSON
    • XML

这里的接受端地址不是普通的地址,不是说你把公司的应用地址拿来就可以正常接入消息服务MNS,而是需要满足一定的条件,同时需要与你的消息服务MNS同地域。

接收端地址:Endpoint消息服务MNS的访问域名地址,格式如下:

http://$AccountId.mns.$Region.aliyuncs.com

  • mns..aliyuncs.comRegion是消息服务MNS服务部署的地域,您可以根据应用需要选择不同的地域。
  • AccountId:队列所有者的账号ID,调用API请求时需替换成实际的账号ID。

关于订阅的另外

由于我们是测试用的,在主题模型开始之初也创建了用于接收消息的队列,所有这里在创建订阅时需要选择【队列】,同时接收端地址是队列名称【topic01】

发布消息

回到主题列表页,点击【发布消息】

接收消息

回到创建的队列列表点击【收发消息】-【接收消息】,可以看到

如此关于消息服务的队列模型和主题模型的基本操作便完成了,文档整体说明比较详细,参数以及后台设置都讲解的比较到位,赞一个

JAVA项目接入

这里官方文档有详细的代码示例和接入操作智囊:MNS支持的Java SDK有哪些版本_消息服务MNS-阿里云帮助中心,整体接入比较简单,可以直接引入pom即可,这里需要在不同系统对应位置创建配置文件.aliyun-mns.properties

配置文件中的AccessKeyId和AccessKeySecret可以通过控制台配置,方便管理,控制台地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,点击【创建】,验证身份之后就可以创建AccessKeyId和AccessKeySecret

创建完成之后配置完对应的文件之后,可以直接参考API文档进行业务开发,整体文档比较详细,示例代码也很明白,接入很丝滑。

总结

整体使用消息服务MNS下来,通过控制台操作MNS比较容易上手,除了在操作时需要知道具体参数的意义才有必要去查看文档时,其他从创建队列,收发消息、删除等都简单容易上手,新手可以直接参考文档就能全程操作下来不卡顿,当然如果有卡顿的可以参考我这篇文章的哈,本人亲测没毛病...

对于刚接触消息服务MNS的同学们,个人觉得不必担心学习成本高的问题,参考文档操作10分钟足够掌握通过控制台操作消息服务MNS的全部操作,当然,在实际接入应用过程中可能会遇到各种各样的问题,同样也不用担心,首先可以去文档中查找,觉得浪费时间的话也可以直接提工单,作为阿里系的产品,每一款产品背后都有一个强大的技术团队支撑,只要业务需要,可以放心接入阿里云消息服务MNS,关于消息服务中消息数据的安全性,可靠性,可以完全交给阿里云消息服务去处理,作为业务方,专注业务即可,专注业务即可,专注业务即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB28181学习(十)——视音频文件下载

要求 SIP服务器接收到媒体接收者发送的视音频文件下载请求后向媒体流发送者发送媒体文件下载命令,媒体流发送者采用RTP将视频流传输给媒体流接收者,媒体流接收者直接将视频流保存为媒体文件;媒体流接收者或SIP服务器可通过配置查询等方式获取…

算法模板之双链表图文详解

文章目录 📋前言一. ⛳️使用数组模拟双链表讲解1.1 🔔为什么我们要使用数组去模拟双链表?1.2 🔔用数组模拟实现双链表1.2.1 👻整体框架说明1.2.2 👻双链表查找和修改1.2.3 👻双链表插入结点1.2…

云数据仓库实践:AWS Redshift在大数据储存分析上的落地经验分享

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

【RNA structures】RNA-seq 分析: RNA转录的重构和前沿测序技术

文章目录 RNA转录重建1 先简单介绍一下测序相关技术2 Map to Genome Methods2.1 Step1 Mapping reads to the genome2.2 Step2 Deal with spliced reads2.3 Step 3 Resolve individual transcripts and their expression levels 3 Align-de-novo approaches3.1 Step 1: Generat…

C语言------接续符和转义符

接续符和转义符--------- \ C语言中的\符号可以表示接续符和转义符。 C语言中的接续符( \ )放在一行代码的结尾,可以将下一行的内容提到这一行来。 \符号还有另一个作用 — 转义符。 C语言中的转义符()主要用于表示无回显字符,也可用于表示常规字符。 …

原型链继承

方式一:原型链继承 1.套路: (1)定义父类型构造函数 (2)给父类型的原型添加方法 (3)定义子类型的构造函数 (4)创建父类型的对象赋值给子类型的原型 &…

基于SpringBoot的家具商城管理系统

基于SpringBoot的家具商城管理系统的设计与实现【文末源码】 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 家具详情 通知公告 登录界面 管理员界面 摘要 一段关于基于…

Windows下安装PyTorch(GPU版本)

PyTorch环境配置及安装 初步机器学习,这里记录下一些学习经过,之后以便于自己查看,同时欢迎各位大佬点评,本节是机器计算的一个包的安装和简单验证。 1.流程 确定自己的硬件信息-确定电脑有英伟达(NVIDIA&#xff…

给视频批量添加背景图,轻松简单的操作方法

当我们需要给多个视频添加相同的背景图片时,一个一个地添加未免太过于繁琐和低效。幸运的是,我们可以使用固乔剪辑助手这款软件来实现批量添加背景图片的操作。下面就是详细的步骤指南。 首先,我们需要在浏览器搜索“固乔科技”,然…

面试官心声:个个都说会自动化,结果面试一问细节全露馅了

今年我们部门计划招聘几名自动化测试工程师,为此我进行了面试和培训,发现了一个让我感到担忧的趋势,许多候选人可以轻松地回答有关脚本编写、元素定位、框架API等问题。然而一问到实际项目,比如“如何从0开始搭建自动化体系”、“…

【C语言】用函数实现模块化程序设计

前言:如果把所有的程序代码都写在一个主函数(main函数)中,就会使主函数变得庞杂、头绪不清,使阅读和维护程序变得困难。此外,有时程序中要多次实现某一功能,如果重新编写实现此功能就会使得程序冗长、不精炼。 &#x…

day02_numpy_demo

Numpy Numpy的优势ndarray属性基本操作 ndarray.func() numpy.func()ndarray的运算:逻辑运算、统计运算、数组间运算合并、分割、IO操作、数据处理,不过这个一般使用的是pandas Numpy的优势 Numpy numerical数值化 python 数值计算的python库,用于快…

Node.js--》简易资金管理系统后台项目实战(后端)

今天开始使用 node vue3 ts搭建一个简易资金管理系统的前后端分离项目,因为前后端分离所以会分两个专栏分别讲解前端与后端的实现,后端项目文章讲解可参考:前端链接,我会在前后端的两类专栏的最后一篇文章中会将项目代码开源到我…

arduino 记录

​ 知识整理 Arduion U8G2简要说明 u8g2显示分为全页显示与分页显示和U8X8的无ram显示 全页显示需要单片机提供1024字节的ram,分页显示分为需要256字节和125字节的ram U8X8不需要ram,但不可画图,只能显示文字 全页使用 clearbuff senddbuff 分页…

javaweb中的转发与重定向

2023.10.22 在一个web应用中应该如何完成资源的跳转? 转发重定向 转发和重定向有什么区别? 转发是由服务器端进行的页面跳转,而重定向是由浏览器端进行的页面跳转。 ①代码上的区别: 转发: // 获取请求转发器对象…

Sublime Text forMac/Windows:高效代码编辑器的终极指南

你是否曾为寻找一款高效、强大且用户友好的代码编辑器而感到困扰?现在,让我们一起探索Sublime Text的魅力。Sublime Text是一款流行的代码编辑器,以其强大的功能和简洁的设计赢得了开发者的喜爱。本文将带你了解Sublime Text的各项特性&#…

1、VMware虚拟机及网络配置

一、VMware虚拟网络编辑器 1、选择NAT模式并配置子网 2、进入NAT设置,配置网关 3、宿主机网络适配器设置 二、创建虚拟机 在这里插入图片描述 三、开启虚拟机,安装操作系统 在该网段内配置静态ip,指定网关为前面NAT配置的网关地址…

游戏找不到msvcr100dll怎么办,分享5个有效修复方法

一、游戏找不到msvcr100dll会造成的困扰 在当今的数字时代,电子游戏已经成为了我们生活中不可或缺的一部分。它们为我们提供了娱乐和放松的机会,让我们能够在忙碌的生活中找到乐趣。然而,当我们在玩游戏时,可能会遇到一些技术问题…

【性能测试】MySQL慢查询原因/排查思路+SQL优化与性能定位思路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Mysql慢查询现象、…

十四天学会C++之第八天:文件操作

1. 文件的打开和关闭 文件操作的基本概念。打开文件:使用fstream库打开文件以供读写。关闭文件:确保文件在使用完毕后正确关闭。 文件的打开和关闭:C 文件操作入门 在C编程中,文件操作是一项重要的任务,可以读取和写…