Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。

作者: 江河清(远云)


在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。


Dubbo 的基础介绍


Apache Dubbo 是一个高性能、轻量级的微服务框架,最初由 Java 开发,但现在已扩展支持 Go、Rust、Python 等多种语言,为全球企业构建跨语言、跨平台的分布式系统提供了强有力的支持。Dubbo 提供了丰富的服务治理能力,包括服务注册与发现、负载均衡、容错机制和调用链追踪,帮助开发者构建高效、灵活的微服务架构。


随着 Dubbo 逐渐演进,其通信性能、服务治理能力和跨语言兼容性得到了大幅提升,成为支持现代微服务架构的理想工具。


Triple X 全新升级背景


在 Dubbo 的早期应用中,虽然其在数据中心内部的服务互通中展现了卓越的性能,但随着技术演进和应用场景的扩展,原有架构逐渐暴露出了一些瓶颈。这些瓶颈在跨区域、跨云的环境中尤为明显,尤其是在 Web 框架与 RPC 框架之间的频繁切换中,开发复杂性和系统性能都受到了影响。


传统架构的痛点主要体现在:

  1. 局限于数据中心内的应用场景:在跨地域或跨云应用中,Dubbo 的传统架构缺乏对广域环境的原生支持,导致开发者需要在多种协议和框架中切换,增加了复杂性。
  2. 南北向与东西向流量的双重挑战:在现代微服务架构下,传统的 RPC 框架往往更侧重南北向流量优化,而服务间(东西向)通信的性能要求日益增加,对传统 Dubbo 架构提出了新的挑战。
  3. 云原生与跨语言互操作性要求:随着云原生技术的普及,系统需要对 HTTP 协议有更深层次的支持,并具备跨语言的通信能力,然而传统 Dubbo 在这一点上并未原生优化。


Triple X 的变革和突破:

Triple X 的诞生,直接回应了这些痛点,它不仅延续了 Dubbo 一贯的高性能通信能力,还实现了与 gRPC 协议的全面兼容,通过支持 HTTP/1、HTTP/2、HTTP/3 等协议,为跨云、跨区域的广泛应用场景提供了更具灵活性和高效性的解决方案。

image.png


Triple X 核心能力概述


  • 全面支持南北向与东西向流量:Triple X 无缝支持从客户端到服务器的南北向流量及服务间通信的东西向流量,并确保灵活转换,提升通信链路的整体效率。
  • 遵循 gRPC 协议标准:Triple X 遵循了 gRPC 协议标准,支持通过 Protobuf 进行通信,与 gRPC 服务无缝交互,扩展了 Dubbo 的跨语言、跨平台通信能力。
  • 基于 HTTP 协议,原生支持云原生架构:Triple X 构建于 HTTP/1、HTTP/2 和 HTTP/3 协议栈之上,全面优化了网络通信性能,并与现代云原生基础设施无缝集成,支持各种网关和服务网格。
  • 高性能优化:Triple X 提供了极致的性能提升,尤其在高并发和弱网环境下表现卓越,极大提高了系统吞吐量与响应速度。
  • 平滑迁移与框架兼容:支持从现有的 Spring Web 项目无缝迁移,开发者无需更改现有代码即可切换至 Triple X,提升性能,并保留对 Spring MVC 等框架的支持。
  • 高扩展性:Triple X 新引入 20+ SPI 扩展点,支持自定义核心行为,包括路由映射、参数解析、序列化及异常处理等。显著提升框架的灵活性和可定制性,使开发者能够根据特定业务需求和场景自定义行为,提高开发效率并降低定制化成本。


Triple X 使用场景


Triple X 在 Dubbo 3.3 中为微服务架构提供了灵活的接入方式,能够适应不同场景下的系统需求。根据系统架构的不同,Triple X 提供了中心化接入方式去中心化接入方式,适用于多种应用场景。


1. 中心化接入方式

在中心化接入方式中,外部流量通过一个统一的服务网关进入 Dubbo 后端服务。网关负责处理 HTTP 流量的解析、转发,并将请求路由到合适的后端服务中。这种方式适用于对流量统一管理、流量控制、权限校验等有较高要求的系统,能够集中式地控制流量的进入点。

image.png

  • 使用场景:当系统需要集中管理外部请求、对流量进行监控和限流等操作时,Triple X 能够通过服务网关处理 HTTP/1、HTTP/2 和 HTTP/3 的流量,并高效地转发给 Dubbo 服务进行处理。
  • 优势:集中化控制、易于管理,适合大规模系统中的统一流量治理。


2. 去中心化接入方式

在去中心化接入方式中,外部客户端可以直接通过 HTTP 协议访问后端 Dubbo 服务,而不需要依赖中间的网关层。这种方式适合对性能和低延迟有较高要求的系统,通过减少网关的转发,直接将流量路由到服务节点,从而降低通信开销,提升系统响应速度。网关节点的消除,能避免网关故障造成的系统不可用,简化部署架构,提升系统稳定性。

image.png

  • 使用场景:当系统希望通过直接的 HTTP 流量接入 Dubbo 服务,减少中间环节,提高系统的响应速度时,Triple X 提供了直接暴露 REST API 的能力,无需借助网关即可完成服务导出。
  • 优势:去除中间环节,提升性能和响应速度,简化了架构,适合对低延迟有需求的应用场景。


Triple X 核心能力拆解说明


1. 支持全面的流量管理与高效通信

在复杂的微服务架构中,南北向流量(客户端到服务器)和东西向流量(服务间通信)需要采用不同的技术进行处理,系统往往面临性能瓶颈与复杂的开发和运维问题。


Triple X 协议通过统一的通信协议,同时支持南北向与东西向流量。无需在 Web 框架与 RPC 框架之间切换,简化了开发流程,提升了系统的整体性能和可维护性。


开发者可以通过 Triple X 实现全方位的流量支持,无论是用户发起的请求,还是服务间的通信,均可通过 Triple X 实现高效传输。


package org.apache.test;

@DubboService
public class UserServiceImpl implements UserService {
    // 处理东西向请求
}

// Triple X 也支持南北向流量处理
@DubboService
public class OrderService {
    @GetMapping("/order/{orderId}")
    public Order getOrderById(@PathVariable("orderId") String orderId) {}
}


调用方式:

  1. Dubbo Client 直接发起 RPC 调用
  2. 前端使用 HTTP 直接请求,目标路径为 http://server:50051/order/{orderId}
  3. 使用 Dubbo 默认发布的路径进行请求,目标路径为 http://server:50051/org.apache.test.OrderService/getOrderById?orderId=xxx


2. 遵循 gRPC 协议标准

跨语言服务之间的通信经常成为分布式系统中的难题,gRPC 是常用的解决方案之一,但传统 Dubbo 需要借助额外工具实现与 gRPC 的互操作性。


Triple X 遵循 gRPC 协议标准,通过 Protobuf 实现与 gRPC 的无缝交互,简化了开发流程,增强了跨语言和跨平台通信能力。

使用 Triple X 的服务可直接与基于 gRPC 的服务进行互通,无需额外适配,系统之间即可高效互访。


3. 基于 HTTP 协议,原生支持云原生架构

在云原生环境下,服务需要与各种网络设施(如 API 网关、服务网格)进行高效集成,同时支持多种 HTTP 协议以优化网络性能。


Triple X 同时支持 HTTP/1、HTTP/2 和 HTTP/3 协议,开发者无需进行额外配置即可利用这些协议的优势,包括长连接、多路复用和头部压缩,从而实现高效的网络通信。使用 HTTP/3 还能彻底解决队头阻塞问题,同时基于 UDP 的通讯方式,在弱网下能够维持较高的连接质量和服务性能,同等环境 TCP 在高丢包率下可能已不可用。


Triple X 支持复用 Spring Boot 现有 Servlet 端口接入 HTTP 流量,无需新增 Netty 监听端口。网络架构的简化,可以降低使用和维护成本,提升安全性,流量易于通过企业防火墙和网关。

image.png


4. 高性能优化,提升 5 倍 QPS

在高并发场景中,传统通信协议并未做深度优化,容易造成瓶颈,影响系统的整体响应时间和吞吐量。


Triple X 通过 Radix Tree 和 Zero Copy 等技术降低了 CPU 使用和内存用量,显著提升了系统性能,尤其在高并发和弱网环境下表现突出:


  • 高效路由:采用 Radix Tree 前缀树结构进行路由匹配,优化 key hash 算法并支持动态更新,减少内存占用,提高匹配效率。
  • 内存使用优化:结合 Zero Copy 技术和对象复用技术,减少数据复制和对象创建开销,降低垃圾回收压力,提升吞吐量。
  • HTTP/3 支持:引入基于 QUIC 的 HTTP/3 协议,显著提升弱网环境下的性能表现,解决队头阻塞问题,减少延迟并提高连接可靠性。
  • 多协议压测优化:Dubbo 团队对各种协议进行了全面压测,基于测试结果进行了多轮性能优化,确保在不同场景下都能达到最佳表现。


经过压测,简单 Rest 服务相较于传统 Spring Boot REST 服务,Triple X 服务的平均响应时间降低至 1/3,高压力下 QPS 提升 5 倍,同时内存分配量减少 50%,显著提升了系统整体性能和资源利用效率。

image.png

image.png

image.png

image.png

5. 平滑迁移与框架兼容

此外,Triple X 还支持对于已有 Spring Web 的项目,在不大幅修改代码的前提下提升性能,向微服务架构迁移。


Triple X 支持零侵入式的迁移方案,开发者无需更改现有代码即可将现有的 Spring Web 项目迁移至 Triple X,同时保留对 Spring MVC 等框架的支持。


@DubboService    // 仅需添加服务发布配置
@RestController
public class DemoController {

    @GetMapping("/spring-test")
    public String sayHello(@RequestParam("name") String name) {
        return "Hello " + name;
    }
}

此次版本升级其他的能力优化概述


1. Native Image AOT 支持

Dubbo 3.3 引入了对 Native Image AOT(Ahead-of-Time 编译)的支持,开发者可以将 Dubbo 应用编译为原生二进制文件,极大缩短启动时间,降低内存占用,特别适合无服务器(Serverless)场景。


2. Project Loom 支持

Dubbo 3.3 提供了对 Project Loom 的支持,通过虚拟线程优化了高并发场景下的线程管理,简化了异步编程模型,提升了并发处理能力。


3. 全新路由规则

在路由机制上,Dubbo 3.3 引入了全新的路由规则,支持更加灵活的流量控制和服务治理,增强了微服务系统在大规模部署中的适应性。


总结


Apache Dubbo 3.3 的发布标志着微服务通信技术迈向新高度。通过 Triple X,Dubbo 不仅实现了对南北向与东西向流量的全面支持,还通过与 gRPC 的无缝集成、基于 HTTP 协议的云原生支持以及高性能优化,为开发者提供了更强大、灵活的工具,帮助他们构建现代分布式系统。


无论是提升服务间通信的高效性、实现跨语言兼容,还是优化云原生环境下的通信性能,Dubbo 3.3 都是开发者应对现代分布式系统挑战的理想选择。立即升级至 Dubbo 3.3,体验 Triple X 带来的变革,开启微服务通信的新时代!

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
60 2
|
3月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
6天前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
2月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
19天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
74 6
|
19天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
30 1
|
3月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
4月前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
4月前
|
负载均衡 应用服务中间件 持续交付
微服务架构下的Web服务器部署
【8月更文第28天】随着互联网应用的不断发展,传统的单体应用架构逐渐显露出其局限性,特别是在可扩展性和维护性方面。为了解决这些问题,微服务架构应运而生。微服务架构通过将应用程序分解成一系列小型、独立的服务来提高系统的灵活性和可维护性。本文将探讨如何在微服务架构中有效部署和管理Web服务器实例,并提供一些实际的代码示例。
123 0
|
18天前
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
44 7

热门文章

最新文章

推荐镜像

更多