张贴在 2023
工商银行 Dubbo3 应用级服务发现实践
Sunday, January 15, 2023 在 用户案例
问题分析 以下是经典的 Dubbo 的工作原理图,服务提供者和消费者通过注册中心协调实现地址的自动发现。 工商银行面临的主要瓶颈是在注册中心与服务消费端,接口级别地址的数量已经是亿级规模,一方面存储容量达到瓶颈、另一方面推送效率明显下降;而在消费端这一侧,Dubbo2 框架常驻内存已超 40%,每次地址推送带来的 cpu 等资源消耗率也非常高,影响正常的业务调用。 这是 Dubbo2 接口级服务发现架构在大规模集群场景下的固有问题(具体原因请查看应用级服务发现原理解析),通过常规的性能优化无法从 …
Dubbo 连接异构微服务体系 - 多协议&多注册中心
Thursday, January 05, 2023 在 功能演示
从编程开发的角度来说,Dubbo 首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节。同时 Dubbo 也是一款服务治理框架,它为分布式部署的微服务提供了服务发现、流量调度等服务治理解决方案。 在这篇文章中,我们将以以上基础能力为背景,尝试突破 Dubbo 体系自身,探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通。在实际业务场景中,这可以用来解决异构技术体系共存场景下的通信问题,帮助公司实现 …
张贴在 2022
Dubbo 3 之 Triple 流控反压原理解析
Wednesday, December 28, 2022 在 源码分析
Triple 是 Dubbo 3 提出的基于 HTTP2 的开放协议, 旨在解决 Dubbo 2 私有协议带来的互通性问题。 Triple 基于 HTTP/2 定制自己的流控,支持通过特定的异常通知客户端业务层服务端负载高情况, 保护了服务端被大流量击垮,提高系统高可用能力。 一、流控反压现状 客户端和服务器端在接收数据的时候有一个缓冲区来临时存储数据, 但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况, HTTP 通过流控保护数据溢出丢失风险。 1、HTTP/1 …
Triple 协议支持 Java 异常回传的设计与实现
Monday, December 19, 2022 在 源码分析
背景 在一些业务场景, 往往需要自定义异常来满足特定的业务, 主流用法是在catch里抛出异常, 例如: public void deal() { try{ //doSomething ... } catch(IGreeterException e) { ... throw e; } } 或者通过ExceptionBuilder,把相关的异常对象返回给consumer: provider.send(new ExceptionBuilders.IGreeterExceptionBuilder() …
Dubbo Java 3.2.0-beta.3 正式发布
Sunday, December 18, 2022 在 社区动态
Dubbo 3.2.0-beta.3 版本是目前 Dubbo 3 的最新特性版本,包括了如 Spring Boot 3、JDK 17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。 Dubbo 3.2.0-beta.3 注:Dubbo 3.2.0-beta.3 的代码基础和 Dubbo 3.1.4 完全一致,因此在 Dubbo 3.1.4 中包括的所有修改内容,在 Dubbo 3.2.0-beta.3 中也同样存在,后续说明中对于重复的内容讲不再赘述。 新特性 支持使用 jackson …
Dubbo Java 3.1.4 正式发布
Thursday, December 01, 2022 在 社区动态
Dubbo 3.1.4 版本是目前 Dubbo 3 的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。 Dubbo 3.1.4 新特性 Dubbo QoS 支持指定白名单 IP 列表访问所有命令 Bugfix 修复在泛化调用时 Dubbo Metrics 采集方法名错误 修复使用 Zookeeper 作为元数据中心时,上报接口映射可能存在相互覆盖的问题 修复 timeout countdown 在 Triple 协议的支持 修复 timeout countdown 存在透传的问题 修复多 …
Dubbo 3.2.0-beta.2 正式发布
Friday, November 18, 2022 在 社区动态
Dubbo 3.2.0-beta.2 修改内容 切换到在用户线程序列化,提升协议性能 支持 Netty3 的端口复用 修复存在多个用户配置的 providedBy 时不生效的问题 支持 istio 的 first-party-jwt 能力 删除 fastjson 和 gson 的传递依赖 支持可选 appResponse 不透传的能力 切换到 Fastjson2 为默认序列化依赖 完善注册中心推送的日志 修复路由刷新时机早于服务目录刷新时机的问题 关闭地址推空保护 更新支持 GraalVM …
Apache Dubbo 多语言体系再添新员:首个 Rust 语言版本正式发布
Sunday, October 23, 2022 在 Rust
Dubbo Rust 定位为 Dubbo 多语言体系的重要实现,提供高性能、易用、可扩展的 RPC 框架,同时通过接入 Dubbo Mesh 体系提供丰富的服务治理能力。本文主要为大家介绍 Dubbo Rust 项目基本情况,通过一个示例快速体验 Rust 首个正式版本特性,并给出了 Dubbo Rust 社区的近期规划,适合于关注或正在采用 Rust 语言的开发者与企业用户阅读。 1 Dubbo Rust 简介 Dubbo 作为 Apache 基金会最活跃的明星项目之一,同时也是国内最受欢迎的 …
聚焦稳定性,Dubbo Java 发版规划公布
Saturday, October 22, 2022 在 社区动态
Dubbo 简介 Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。 我应该如何选择版本? 对于这个问题,一直以来 Dubbo 都没有很好地 …
Proxyless Mesh在Dubbo中的实践
Monday, September 05, 2022 在 功能演示
背景 随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析, 实现 Dubbo 与 Control Plane 的直接通信,进而实现控制面对流量管控、服务治理、可观测性、安全等的统一管控,规避 Sidecar 模式带来的性能损耗与部署架构复杂性。 什么是Service Mesh Service Mesh 又译作 “服务网格”,作为 …