没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。 (4)

简介: 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。 (4)

image.png


image.png


image.png


长度是 16,和 header 的长度吻合,但是里面装的玩意还是没看出来。


但是这样一看,看前两个字节,你就明白了:


image.png


嘿,你说巧了吗,这不是巧了吗,这不是。


魔数也对上了。说明这是一个 Dubbo 的 header。


然后取出第 3 字节,进行位运算,判断这是什么报文:


image.png


前面,我们解决了怎么知道当前到底是响应还是请求报文这个问题。


接下来,进入分支里面就重点关注对响应报文的解析了:


image.png


image.png



从 Debug 的截图里面我们可以看出,当前的状态为 20,表示正常返回。


标记为③的地方,是对心跳包的解析,我们这里不关心。


标记为④的地方,是我们需要重点关注的地方,也是我们一直在寻找的代码。


这个地方就很关键了,大家集中注意力了。


image.png


首先,下面代码的截图是 2.7.5 版本的:


image.png


这里的 if 分支和分支里面的判断条件,就是我们前面说的:


你用脚指头想也知道了。首先肯定是有一个 if 判断的,判断到底在哪(IO线程/客户端线程池)进行响应解析。而这个分支判断的判断条件,按照 Dubbo 的尿性,肯定是可以配置的。


下面这张图片对 2.7.4.1 和 2.7.5 版本这个地方进行一个对比:


image.png


目录
相关文章
|
5天前
|
Java
网络 I/O:单 Selector 多线程(单线程模型)
网络 I/O:单 Selector 多线程(单线程模型)
|
5天前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
5天前
|
安全 API 数据库
【转】Android线程模型(AsyncTask的使用)
【转】Android线程模型(AsyncTask的使用)
13 1
|
5天前
|
消息中间件 存储 网络协议
Kafka 线程模型痛点攻克: 提升分区写入 2 倍性能
Apache Kafka的单分区写入性能在某些严格保序场景中至关重要,但其现有线程模型限制了性能发挥。本文分析了Kafka的串行处理模型,包括SocketServer、KafkaChannel、RequestChannel等组件,指出其通过KafkaChannel状态机确保请求顺序处理,导致处理效率低下。AutoMQ提出流水线处理模型,简化KafkaChannel状态机,实现网络解析、校验定序和持久化的阶段间并行化,提高处理效率。测试结果显示,AutoMQ的极限吞吐是Kafka的2倍,P99延迟降低至11ms。
22 3
Kafka 线程模型痛点攻克: 提升分区写入 2 倍性能
|
5天前
|
存储 NoSQL Redis
深入浅出Redis(二):Redis单线程模型与通信流程
深入浅出Redis(二):Redis单线程模型与通信流程
|
5天前
|
NoSQL Redis
Redis 线程模型
Redis 线程模型
|
5天前
|
监控 安全 Java
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题
|
5天前
|
Java Linux
【linux线程(三)】生产者消费者模型详解(多版本)
【linux线程(三)】生产者消费者模型详解(多版本)
|
5天前
|
消息中间件 安全 Java
多线程(初阶七:阻塞队列和生产者消费者模型)
多线程(初阶七:阻塞队列和生产者消费者模型)
32 0
|
5天前
|
缓存 NoSQL 安全
Redis 新特性篇:多线程模型解读
Redis 新特性篇:多线程模型解读
57 5