Posts in 2022
Dubbo 3 之 Triple 流控反压原理解析
Wednesday, December 28, 2022 in 源码分析
Triple 是 Dubbo 3 提出的基于 HTTP2 的开放协议, 旨在解决 Dubbo 2 私有协议带来的互通性问题。 Triple 基于 HTTP/2 定制自己的流控,支持通过特定的异常通知客户端业务层服务端负载高情况, 保护了服务端被大流量击垮,提高系统高可用能力。 一、流控反压现状 客户端和服务器端在接收数据的时候有一个缓冲区来临时存储数据, 但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况, HTTP 通过流控保护数据溢出丢失风险。 1、HTTP/1 …
Triple 协议支持 Java 异常回传的设计与实现
Monday, December 19, 2022 in 源码分析
背景 在一些业务场景, 往往需要自定义异常来满足特定的业务, 主流用法是在catch里抛出异常, 例如: public void deal() { try{ //doSomething ... } catch(IGreeterException e) { ... throw e; } } 或者通过ExceptionBuilder,把相关的异常对象返回给consumer: provider.send(new ExceptionBuilders.IGreeterExceptionBuilder() …
浅析 Dubbo 3.0 中接口级地址推送性能的优化
Thursday, June 23, 2022 in 源码分析
URL 简介 在阐述地址推送性能的具体优化之前,我们有必要先了解一下与之息息相关的内容 — URL。 定义 在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 (RFC1738――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单。 因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语 义。而这些字符串则被称为:“统一资源定位器”(URL) …
Posts in 2021
Posts in 2019
Dubbo 中的 URL 统一模型
Thursday, October 17, 2019 in 源码分析
定义 在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 (RFC1738――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单 因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语 义。而这些字符串则被称为:“统一资源定位器”(URL) 一个标准的 URL …