消息发送5-总结|学习笔记

简介: 快速学习消息发送5-总结

开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段)消息发送5-总结】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/704/detail/12475


消息发送5-总结


整个消息发送的主要方法,就是在DefaultMQProducerImpl 这个里面进行一个处理。

image.png最终会走到sendDefaultmpl(msg.sync.null.time.out)方法里。这里用了默认的时间是三秒钟,在发送信息的时候,先去校验消息的合法性。包括消息的程度等等,如果消息合法,它就开始发消息。

在发送过程中首先先去查找路由信息,通过TrytoFindTopicPublishinfo去发送,再去查找路由。

怎么查找路由?在客户端的本地缓存了一个topic publish路由的信息,它先从本地查,如果本地查出来了,那就直接使用本地的路由去发送。

如果本地没有路由怎么办?它就去通过MQclient instance去请求name server,通过name server查找当前topic所对应的路由信息,这一步是去查找路由。

路由查找出来之后,就要开始发送消息,最终消息是要发送到message queen这个消息队列当中。

发送的消息对列里rocket M Q做了一个故障延迟机制的处理,如果打开了故障延迟的机制,那么它在再去发送信息的时候先根据当前这个message queen,维护了一个索引,通过这个索引对message queen进行一个取模,取出message queen,取出来之后进行校验。

image.png如果它是可用的,那就直接返回,如果是不可用的,从它之前所发送过的故障表当中取出一个相对比较好的信息再去发送它。

如果这里面没有打开故障延迟机制,那就直接使用它。所以对这个message queen进行一个取模,直接返回。

第三步就是选择这个消息队列。选择了这个消息对列之后,接下来就要发送,在发送时,首先获取broker的网络地址,对message进行I D的设置,判断一下当前这个消息是否要去压缩,再去判断是否有发送之前的增强逻辑,如果有就把这个增强逻辑,其实就是一个钩子方法,将它进行执行。

整个都完成了之后,去封装请求包,通过MQclient的实力向外发送消息。

image.png整个消息的发送流程为以下四步:

1. 验证消息

2. 查找路由

3. 选择队列

4. 发送消息

5.

相关文章
|
Android开发
Android面试题之activity启动流程
该文探讨了Android应用启动和Activity管理服务(AMS)的工作原理。从Launcher启动应用开始,涉及Binder机制、AMS回调、进程创建、Application和Activity的生命周期。文中详细阐述了AMS处理流程,包括创建ClassLoader、加载APK、启动Activity的步骤,以及权限校验和启动模式判断。此外,还补充了activity启动流程中AMS的部分细节。欲了解更多内容,可关注公众号“AntDream”。
198 1
|
C#
如何在 C# 项目中链接一个文件夹下的所有文件
在 C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息。但是如果我们想要链接一个文件夹下的所有文件,该怎么做呢?今天我们就来看看如何在 C# 项目中链接一个文件夹下的所有文件。
262 0
如何在 C# 项目中链接一个文件夹下的所有文件
|
存储 iOS开发
Swift学习第八枪--协议(二)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/51553393 协议(二) 下面是我的新建的Swift学习交流群,欢迎大家一起来共同学习Swift。
827 0
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1091 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1767 9