RSS

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

  • 应用级服务发现

    Wednesday, June 02, 2021 in 源码分析

    1 服务发现(Service Discovery) 概述 从 Internet 刚开始兴起,如何动态感知后端服务的地址变化就是一个必须要面对的问题,为此人们定义了 DNS 协议,基于此协议,调用方只需要记住由固定字符串组成的域名,就能轻松完成对后端服务的访问,而不用担心流量最终会访问到哪些机器 IP,因为有代理组件会基于 DNS 地址解析后的地址列表,将流量透明的、均匀的分发到不同的后端机器上。 在使用微服务构建复杂的分布式系统时,如何感知 backend 服务实例的动态上下线,也是微服务框架最 …

    更多

Posts in 2019

  • Dubbo 中的 URL 统一模型

    Thursday, October 17, 2019 in 源码分析

    定义 在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 (RFC1738――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单 因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语 义。而这些字符串则被称为:“统一资源定位器”(URL) 一个标准的 URL …

    更多

Posts in 0001