消息服务MNS之初见

简介: 简要介绍阿里云消息服务MNS(Message Service)及基础操作

消息服务MNS

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

什么是消息服务MNS

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

消息服务MNS产生

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

消息服务MNS的模型

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


消息服务MNS基本操作

控制台地址: https://home.console.aliyun.com/home/dashboard/ProductAndService,打开控制台,搜索消息服务MNS

image.png

免费开通【消息服务MNS】

image.png

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

队列模型基本操作

创建队列

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

image.png

参数说明:

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

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

收发消息

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

image.png

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

image.png

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

image.png

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

主题模型基本操作

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

创建队列

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

image.png

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

创建主题

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

image.png

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

创建订阅

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

image.png

参数说明:

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

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

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

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

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

关于订阅的另外

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

image.png

发布消息

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

image.png

image.png

接收消息

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

image.png

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

JAVA项目接入

这里官方文档有详细的代码示例和接入操作智囊:https://help.aliyun.com/document_detail/27508.html,整体接入比较简单,可以直接引入pom即可,这里需要在不同系统对应位置创建配置文件.aliyun-mns.properties

image.png

配置文件中的AccessKeyId和AccessKeySecret可以通过控制台配置,方便管理,控制台地址:https://ram.console.aliyun.com/manage/ak,点击【创建】,验证身份之后就可以创建AccessKeyId和AccessKeySecret

image.png

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

总结

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

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



相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
NoSQL Java Redis
分布式锁框架Lock4j简单使用
最近项目中使用到了Lock4j的分布式锁组件,小编今天就带大家学习一下该框架,以及如何在我们项目中进行集成使用。
|
3月前
|
机器学习/深度学习 人工智能 前端开发
如何更科学、方向可控的实现 Skill 的“自进化”?
本文深度解析Agent Skill自进化的三大前沿方案:Trace2Skill(归纳聚合)、EvoSkill(自验证选择)和SkillOpt(类模型训练)。三者分别从群体经验提炼、闭环验证筛选、参数化优化视角,解决单轨迹偏差、质量不稳、冗余低效等痛点,推动Skill构建从“人工调试”迈向“科学工程”。
1133 0
|
9月前
|
Java Maven
apache-maven-3.9.9-bin.zip 使用步骤(超简单版)
下载Maven安装包并解压,配置MAVEN_HOME环境变量及Path路径,通过cmd输入mvn -v验证安装成功。建议修改本地仓库路径至非C盘,最后在IDEA中设置Maven路径以集成使用,完成开发环境配置。
2588 4
|
8月前
|
人工智能 自然语言处理 机器人
客服每天重复回答几百次?用AI语音Agent自动处理票务与天气咨询的设置技巧
节假日文旅咨询高峰,超60%-80%为重复问题,传统IVR效率低下。本文详解如何通过大模型AI语音Agent实现语义理解、实时数据对接与降噪方言识别,配置“活对话”系统,提升接通率,释放人工处理紧急事件,推动服务从“接线工厂”迈向“智能枢纽”。
387 1
|
3月前
|
域名解析 弹性计算 运维
阿里云ECS云服务器从零搭建网站:新手零基础建站全流程教程
对于完全没有技术基础的新手而言,使用阿里云ECS云服务器搭建独立网站,是当前性价比最高、自由度最大、扩展性最强的建站方式。区别于模板建站的功能受限与虚拟主机的性能瓶颈,ECS云服务器支持自主配置运行环境、自由部署网站源码、独立管理所有数据,可完美适配个人博客、作品集展示、中小企业官网、小型资讯站点等各类基础Web项目。整套建站流程逻辑清晰、步骤标准化,无需深厚代码功底,按流程操作即可完成从服务器部署到网站公网访问的全部落地工作。
876 0
|
9月前
|
运维 监控 Python
Python 微服务架构实践:从模块化到轻量级分布式
本文详解Python微服务落地路径:从模块化拆分、轻量框架封装,到服务通信、注册发现,再到Docker容器化部署与监控运维,系统阐述中小团队如何以低成本实现“低耦合、快迭代”的分布式架构。
|
5月前
|
JSON 人工智能 API
如何用 Python 调用 任何 API(万能通用方法,一看就会)
我给你最简单、通用、万能的教程,不管是淘宝、京东、小红书、天气、支付、第三方接口,全部一套代码通用。
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
740 68
|
自然语言处理 Cloud Native 安全
Bolt.diy 部署与应用全攻略
Bolt.diy 部署与应用全攻略
596 6
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
1335 4

热门文章

最新文章