实践案例:同程艺龙网的 Dubbo 升级经验总结

2023-10-25 20:50

本文主要是介绍实践案例:同程艺龙网的 Dubbo 升级经验总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇为同程艺龙 Apache Dubbo 的实践案例总结。可访问项目官网 https://dubbo.apache.org/ 了解案例细节,或搜索关注官方公众号 Apache Dubbo 跟进最新动态。

作者信息:

  • 严浩:同程艺龙高级开发,负责服务治理相关工作, Apache Dubbo Committer。
  • 胥皓:同程艺龙高级开发,负责服务治理相关工作。

Dubbo3在同程旅行的实践

背景

在微服务发展初期,市场上还没有成熟和流行的 RPC 框架,我们公司内部自研开发了一套名为 DSF (Distributed Service Framework) 的 RPC 框架,支撑起了公司业务的高速发展。但是随着技术的快速迭代和人员的不断变更,开发者既要修复之前的 BUG 又要跟上技术的更新,开发维护成本越来越高。另一方面,现在应用程序都在往云原生方向发展与设计,公司也在这方面做出探索。因此公司微服务框架的演进已经到了岔路口,是全新升级原有的 SDK,还是选择拥抱开源?

考虑到升级现有的 SDK 在一段时间之后可能依然会面临现在的问题,最后我们选择了拥抱开源。在一番调研之后我们选择了 Dubbo3 作为公司的下一代 RPC 框架,担任微服务治理体系的数据面。

目前 Dubbo3 在公司的落地开发工作已经完成,通过本文我们对公司内部 Dubbo3 的实践及收益做了深入总结。

Dubbo3 核心功能介绍

Dubbo 社区关于 Dubbo 3 的文档和资料越来越完善,以下是我们从社区引用的一些内容。

Dubbo3 被社区寄予厚望,将其视为下一代云原生服务框架打造,Dubbo3 提供的核心特性列表,主要包括四部分。

  1. 全新服务发现模型。应用粒度服务发现,面向云原生设计,适配基础设施与异构系统;性能与集群伸缩性大幅提升。
  2. 下一代 RPC 协议 Triple。基于 HTTP/2 的 Triple 协议,兼容 gRPC;网关穿透性强、多语言友好、支持 Reactive Stream。
  3. 统一流量治理模型。面向云原生流量治理,SDK、Mesh、VM、Container 等统一治理规则;能够支持更丰富的流量治理场景。
  4. Service Mesh。在最新的3.1.0的版本中支持Sidecar Mesh 与 Proxyless Mesh,提供更多架构选择,降低迁移、落地成本。

Dubbo3 的核心功能点(如应用级服务发现以 ip、port 为区分实例)和公司内部的服务模型一致,极大地减少了我们的适配工作。还有在 Service Mesh 中对 Sidecar Mesh 与 Proxyless Mesh 的支持也将减少后续公司对 Mesh 方案的探索成本,包括 Dubbo3 在多语言体系的发展也为异构架构提供了支撑。

总的来说,Dubbo3 非常契合公司的技术体系和后续的发展方向。此外,Dubbo 在开发者中的熟悉度、社区的高活跃度和完善的文档建设也都能为推动 Dubbo3 的使用带来不少的帮助。

方案调研

在了解了 Dubbo3 的核心功能和基本工作原理之后我们开始前期工作阶段。

公司内部存在微服务体系 RPC 框架 DSF 和承担服务发现、路由、上下负载等功能的控制中心,如果让用户直接切换到 Dubbo3 使用完全隔离的一套微服务体系会对用户带来高额的升级和切换成本。所以我们选择用 Dubbo3 替换之前的 DSF 框架作为数据面,将 Dubbo3 接入当前的微服务控制中心。同时要求 Dubbo3 支持原有 DSF 框架的私有协议,与 DSF 框架能够相互发现和调用,进一步降低用户升级成本。

这样用户在编程习惯上和 Dubbo3 的使用完全保持一致,在服务治理上(如上下负载、同中心路由、实例标签等功能)的使用与 DSF 保持一致。由于

这篇关于实践案例:同程艺龙网的 Dubbo 升级经验总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/285121

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7