Posts in 2023
Dubbo 在 Proxyless Mesh 模式下的探索与改进
Thursday, February 02, 2023 in 社区动态
一、背景 随着 Docker 和 Kubernetes 的出现,一个庞大的单体应用可以被拆分成多个独立部署的微服务,并被打包运行于对应的容器中。不同应用之间相互通信,以共同完成某一功能模块。微服务架构与容器化部署带来的好处是显而易见的,它降低了服务间的耦合性,利于开发和维护,能更有效地利用计算资源。当然,微服务架构也存在相应的缺点: 强依赖于 SDK,业务模块与治理模块耦合较为严重。 除了相关依赖,往往还需要在业务代码中嵌入SDK代码或配置。 统一治理难。每次框架升级都需要修改 SDK 版本,并 …
Dubbo 3.1.5、3.2.0-beta.4 正式发布
Monday, January 30, 2023 in 社区动态
Dubbo 3.1.5 版本是目前 Dubbo 3 的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。Dubbo 3.2.0-beta.4 版本是目前 Dubbo 3 的最新特性版本,包括了如 Spring Boot 3、JDK 17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。 Dubbo 3.1.5 新特性 Dubbo QoS 支持记录请求的记录,便于进行审计 支持在服务映射失败以后定时进行重试,降低由于元数据中心抖动带来的影响 支持在初始化 Nacos Client 的时 …
Posts in 2022
Dubbo 3 之 Triple 流控反压原理解析
Wednesday, December 28, 2022 in 源码分析
Triple 是 Dubbo 3 提出的基于 HTTP2 的开放协议, 旨在解决 Dubbo 2 私有协议带来的互通性问题。 Triple 基于 HTTP/2 定制自己的流控,支持通过特定的异常通知客户端业务层服务端负载高情况, 保护了服务端被大流量击垮,提高系统高可用能力。 一、流控反压现状 客户端和服务器端在接收数据的时候有一个缓冲区来临时存储数据, 但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况, HTTP 通过流控保护数据溢出丢失风险。 1、HTTP/1 …
Dubbo 3.1.4、3.2.0-beta.3 正式发布
Thursday, December 22, 2022 in 社区动态
Dubbo 3.1.4 版本是目前 Dubbo 3 的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。Dubbo 3.2.0-beta.3 版本是目前 Dubbo 3 的最新特性版本,包括了如 Spring Boot 3、JDK 17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。 Dubbo 3.1.4 新特性 Dubbo QoS 支持指定白名单 IP 列表访问所有命令 Bugfix 修复在泛化调用时 Dubbo Metrics 采集方法名错误 修复使用 Zookeeper 作 …
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 发版规划
Monday, December 05, 2022 in 社区动态
Dubbo 简介 Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。 我应该如何选择版本? 对于这个问题,一直以来 Dubbo 都没有很好地 …
Dubbo 3.1.3、3.2.0-beta.2 正式发布
Tuesday, November 29, 2022 in 社区动态
Dubbo 3.1.3 修改内容 修复本地调用的过程中 Filter 顺序异常的问题 支持导入协议配置项到 MetadataService 支持在发布 MetadataService 时自动选择可用端口 完善错误码内容 泛化调用下支持一致性哈希负载均衡 修复泛化调用时反序列化异常的问题 修复由于 JVM Methods 顺序不一致导致的应用级元数据无法复用的问题 默认关闭端口复用能力,修复 remoting 组建找不到 SPI 的问题 修复由于引用计数异常导致的 safe gard …
Dubbo 发布首个 Rust 语言版本实现
Sunday, October 23, 2022 in Rust
Dubbo Rust 定位为 Dubbo 多语言体系的重要实现,提供高性能、易用、可扩展的 RPC 框架,同时通过接入 Dubbo Mesh 体系提供丰富的服务治理能力。本文主要为大家介绍 Dubbo Rust 项目基本情况,通过一个示例快速体验 Rust 首个正式版本特性,并给出了 Dubbo Rust 社区的近期规划,适合于关注或正在采用 Rust 语言的开发者与企业用户阅读。 1 Dubbo Rust 简介 Dubbo 作为 Apache 基金会最活跃的明星项目之一,同时也是国内最受欢迎的 …
Proxyless Mesh在Dubbo中的实践
Monday, September 05, 2022 in 功能演示
背景 随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析, 实现 Dubbo 与 Control Plane 的直接通信,进而实现控制面对流量管控、服务治理、可观测性、安全等的统一管控,规避 Sidecar 模式带来的性能损耗与部署架构复杂性。 什么是Service Mesh Service Mesh 又译作 “服务网格”,作为 …
22-Dubbo3消费者自动感应决策应用级服务发现原理
Monday, August 22, 2022 in Dubbo 3.0.8
22-Dubbo3消费者自动感应决策应用级服务发现原理 22.1 简介 这里要说的内容对Dubbo2迁移到Dubbo3的应用比较有帮助,消费者应用级服务发现做了一些自动决策的逻辑来决定当前消费者是应用级发现还是接口级服务发现,这里与前面说的提供者双注册的原理是对等的,提供者默认同时进行应用级注册和接口级注册,消费者对提供者注册的数据来决定使用应用级发现或者接口级发现。这些都是默认的行为,当然对于消费者来说还可以自定义其他的迁移规则,具体的需要我们详细来看逻辑。 如果说对于迁移过程比较感兴趣可以直 …