消息的和发送和接收|学习笔记

简介: 快速学习消息的和发送和接收

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术消息的和发送和接收学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15976


消息的和发送和接收

 

消息的发送和接收,Rocket MQ 中间有三种发送消息的方式,同步的、异步的和单向的,同步的这种发送的方式 发送出这个消息以后 他会处于等待状态要,等待这个接收方发回确认的消息,响应以后才会发送下一个这个消息,那这个一般我们用的比较少,因为我们使用消息服务器的话,主要是要用他的这个异步的这样的一种

方式,那对于某些特别重要的通知,我们可能会采用这种同步的方式

第一步发送的方式是我们主要会使用的一种方式,那当消息的发送方他在发送完消息以后,它其实是不用等待这个接收方的这个结果的,他会给接收方提供一个这个回调函数,当这个接收方有成功的消费的消息以后,他会发挥一个成功的响应,一个这个失败的这样的一个响应,所以它是基于一种回调的方式来处理这个消息的消费结果的,所以他不需要等不需要再发送完了以后,来等待他的这个执行的结果,那第三种就是这个单项的方式,单项发送的方式其实它就不需要回调。对于这种这个发送的方式以后,它基本上就是发送以后不管的,也不用关心他到底有没有处理

成功。

对于一些这种比较简单的业务,特别是我们相信这个消息服务器这个一定会把这种消息处理完成的,这样的一种业务来说,我们可以用单向发送的方式,比如说像写日志,从消费的这个角度来看这个消息服务器有提供了两种方式来这个获取这个消息,让消费者可以用拉取的方式或者用 pet的方式,那拉取的方式是消费者主动从服务器来获取这个消息,当获取到消息以后,然后他会再启动它的这个消费的过程,所以说我们称这个破的这种方式叫做主动的消费的这种方式,推送的这种方式都是用服务器去主动推送消息到这个消费者,这样的一种方式来说,由于是服务器主动推送过来的,所以说他不会考虑到这个消费者的处理能力,就把这个消息会推送过来,这种方式其实我们用的比较少,那在我们的这个例子中间,我们可以看到是可以定义这个消费方式的,但实际上来说啊,在我们的程序中间,虽然我们定义了消费方式,在整个的内部,它其实还是用拉取的方式来实现,他也是定时的到服

务器上去拉取这个消息,然后去调用我们的这个接口。来消费这样的一个消息。

从这个消息的类型上来说,它又被分为这个顺序消费和这个并行消费这两种,顺序消费是一种很特定的这种消费的方式,他要求说这个消息在消费的时候必须按照发送的顺序逐一的来做消费,那这样的一种消费方式,会使得说我们在整个消息里头,只会维持一个消息队列,这个消息队列里头只有一个消费者来消费,所以他会

对性能有非常大的影响。

我们比较常用的是这种并行消费的方式,就是发送到这个消息队列中间的这个发生的这个话题,Topic 中间的这个消息,其实是由多个消息的消费者来进行并行消费,所以他并不去保证说先发过来的消息一定会被先消费。这是两种这个消息消费的这样的一种方式我们在发送我们前面提到的这些消息都是普通的消息那在消息服务器中间 rocket mq 中间有两种很特殊的消息,一个是延时消息,一个是事物消息,延时消息是指生产者在发送这个消息到消息服务器 rockman q 的时候,他不希望消费者立马去消费这条消息,而是可以指定一个延时,就是在一个特定的时间点之后,再来消费这一条消息,延时的这个消息使用的场景很多,我们最常用的场景就是在电商中间的这个订单的支付问题,我们知道在系统里面订单的支付是由第三方的支付平台来完成的,所以我们的系统并不知道说这个订单是否有支付成功,就是当时并不知道订单是否支付成功,要等这个第三方的付平台回调这个接口,那这个因为会受到这个第三方的这个系统的回调时间,当然也可能是因为用户自己的原因,他在下一个订单以后没有立马支付,所以我们一般会定一个这个时间窗口,就支付的时间窗口,一般是30分钟,就是认为下了订单以后,30分钟他没有支付的

话,这条订单就会被取消掉,把这个库存给释放出来,供其他的人去买这样的一种实现的方式,利用消息服务器的延迟消息其实是非常容易。

那就是当我们产生一个订单的时候,我们会发一个延迟30分钟以后消费的这样的一个延迟消息,那当这个消费者在30分钟以后收到这条消息以后,再去检查这个订单,如果这个订单依然是一个未支付的状态,就是或者说是没有收到第三方的回调

函数啊,或者说是因为客户的原因,他没有去支付,那则会取消这个订单,把这个库存给它啊,把它扣回去,把它释放出来,这是这个延时消费的这样延时消息的这种方式。

那第二个我们要提到的是这个延时,第二个我们要提到的是这个延时消费其实他并不是说可以指定任何的时间点来消费的,在 rocket mq 中间这个延迟的消费是有一个固定的时间点的,分别是一秒五秒十秒三十秒一分钟两分钟三分钟四分钟五分钟六分钟七分钟八分钟到十分钟二十分钟三十分钟一个小时两个小时这些间隔,所以说当我们只指定这个延时发送的时候我们只能指定一个整数,整数就代表是我们刚刚这些间隔里头的第几集,这是因为说在 rom 空间这个延时消费其实他并不是单独去实现的一个功能,它利用的是我们在这个消息消费中间的重发机制,也就是当我们的服务消费者端那边程序,当消费一个数据不成功,要处理的数据他是不成功的时候,这种消息服务器发一个让他在同发的这样的一个消息,那消息服务器会把就是没有处理成功或者没有发送成功的这个消息,把它放到这个重发队列里头来,就是我们刚刚的这个间隔,间隔时间越来越长,然后再去把它重发给这个消费者去处理,延迟消息就是利用这个重发间隔来实现的,所以说当我们发到去到一个消息以后他不会立马在当前这个队列里头,而是放到那个重发队列里头,在我们指定的这个间隔之后,才会放到这个消费者的队列里头来,这是延时消息,失误消息是

rocket mq 中间跟我们数据库的事务关联在一起的这个消息,它可以在一个事物中间发送消息的时候。

他的分为几个阶段,第一个阶段发送 prepare的消息,那这时候其实消费者并不会去看得到这个状态的消息,虽然这个消息已经发送到消息服务器。那消息发送完以后,它就会回到这个生产者的这个里头,来继续执行,那生产者如果说执行了相应的这个数据库的事务,而且这个事物成功以后,那这个消息去返回一个 commit的这样的一个动作,那当这个消息服务器收到了这个 commit的这样的一个动作的时

候,它就会把这个成为 commit 状态的消息放到消费者的这个对中间,消费者就可以看到。

所以说这个事务型的消息,其实是当我们把消息发送到服务器的时候,他不会立马放到消费者的队列中间,而是通过一个回调函数来查询说在服务器在生产这边的事

务执行状况是什么样的,如果生产者的事务执行状况是成功的,消费者才能看到这个消息,去消费这个消息。

相关实践学习
通过轻量消息队列(原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
相关文章
|
21天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
12天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
493 127
|
7天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
16天前
|
存储 人工智能 监控
QoderWork完全指南:从入门到精通,把“AI实习生”变成你的全能工作搭档
阿里云2026年推出的桌面端AI工作助手QoderWork,不止聊天,更可动手干活:本地运行、安全可控,支持文件整理、数据分析、PPT生成、网页开发等;内置专家套件、多Agent协作与自定义Skills,让AI真正成为你身边的“AI实习生”。
|
7天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
422 1
|
8天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
372 125
|
16天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
928 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~