拉取信息的流程小结|学习笔记

简介: 快速学习拉取信息的流程小结

开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段)拉取信息的流程小结】学习笔记,与课程紧密联系,让用户快速学习知识。

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


拉取信息的流程小结

 

内容介绍:

一、牵扯的类

二、总体流程

 

一、牵扯的类

image.png在这个过程当中牵扯到了几个重要的类,第一个就是 PullMessageService、第二个是 DefaultMQPushConsomerlmpl, 第三个是 MQlientAPllmpl以及PullMessageProfessor 这几个类的作用是什么?这几个类的作用,首先PULLmessage service的主要作用是发起拉取消息的请求。然后拉取消息的请求的处理是由DefaultMQPushConsomerlmpl去进行。真正的再去给客户端呢发出请求,去访问这个broker网络的,是由MQlientAPllmp发起的,然后PullMessageProfessor这个类是BROKER端处理请求的这个类。

 

二、总体流程

整个的流程是由线程 run 先启动起来之后,如果要处理请求,就从 PullRequest 的队列当中拿到一个请求对象,然后把这个请求对象进行提交,提交到 processQueue 中,由它具体去处理。

那它怎么处理?首先去做了一个流控,这个流控是通过两个方面去做,第一个是看消息的数量,如果已经大于1000条了或者消息的大小大于100兆,就暂时停止。如果这两个条件都没满足,那么需要拉取新的消息,就获得主题订阅的信息。然后构建消息拉取的系统标记,去解析 broker 地址,去发起异步拉取的一个请求,同步跟异步在这个过程当中基本上是差不多的,如果是异步,它是一个线程,

它会向服务端发送 RequestCode.PULL_MESSAGE 去进行处理,这个地方发完之后紧接着返回 pullRequestQueue take 又开始去做一个循环。顺着服务端继续往下,向服务端发送拉取的请求开始请求服务端。在服务端这里边首先从 Store,就是Defaultstore 当中去拿出这个消息,然后去进行一下消息的过滤,把正常能够返回给你的消息返回给我们的调用方,要调用方去解码,解码之后要有一个 pullback 给它回调。Pullback 的回调,其实也会做一个过滤的一个逻辑,然后再去将这个渠道的消息提交到消费者的这个消费线程池当中去进行一个处理。

整个过程,其实最重要的就牵扯到四个类,通过这四个类去完成消息的发送,请求的发送,最终,再会做一个响应回来,以上是整个消息拉取的小结。

相关文章
|
5月前
|
敏捷开发 自然语言处理 测试技术
云效产品使用常见问题之webhook 触发,不能将运行备注填充进运行历史如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
SQL 运维 DataWorks
DataWorks操作报错合集之DataWorks提交失败: 提交节点的源码内容到TSP(代码库)失败:"skynet_packageid is null,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
93 0
|
2月前
|
Prometheus DataWorks 安全
DataWorks产品使用合集之如何完成更新完自动推送到外部系统触发更新
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2月前
|
弹性计算 Java Maven
阿里云云效操作报错合集之在构建Docker镜像时提示拉取次数达到限制,该怎么解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
3月前
|
域名解析 运维 Java
阿里云云效操作报错合集之流水线构建过程中出现了实时查询异常,该怎么解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
Shell Linux Go
云效问题之 Flow 使用自定义镜像构建步骤失败如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
175 0
|
4月前
|
缓存 运维 Devops
阿里云云效操作报错合集之在构建过程中,Docker尝试从缓存中获取某个文件(或计算缓存键)时遇到了问题,该如何处理
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
存储 API 持续交付
云效产品使用报错问题之使用自定义镜像构建,看不到构建日志要如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
5月前
|
敏捷开发 机器人 测试技术
云效产品使用常见问题之代理仓库同步到企业仓库的包和手动上传的有区别如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
11月前
|
开发者
评审不通过开发者的提交工具一直显示推送状态,必须通过后推送的信息才会消失
在使用sourcetree时,开发者提交推送代码后,评审不通过,sourcetree上边一直显示推送的状态,只有通过评审推送状态才会消失。
下一篇
无影云桌面