自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 架构解析:Dubbo3 应用级服务发现如何应对双11百万集群实例

继业务全面上云后,今年双11,阿里微服务技术栈全面迁移到以 Dubbo3 为代表的云上开源标准中间件体系。在业务上,基于 Dubbo3 首次实现了关键业务不停推、不降级的全面用户体验提升,从技术上,大幅提高研发与运维效率的同时地址推送等资源利用率在一些关键场景提升超 40%,基于三位一体的 Dubbo3 开源中间件体系打造了阿里在云上的单元化最佳实践和统一标准,同时将规模化实践经验与技术创新贡献开源社区,成为微服务开源技术与标准发展的核心源泉与推动力。面对百万规模的集群实例,实现关键链路不停推、资源

2022-11-22 23:03:02 171

原创 Dubbo 入门系列之基于 Dubbo API 开发微服务应用

目标从零上手开发基于 Dubbo 的微服务难度低环境要求系统:Windows、Linux、MacOSJDK 8 及以上(推荐使用 JDK17)GitIntelliJ IDEA(可选)Docker (可选)动手实践本章将通过手把手的教程一步一步教你如何从零开发一个微服务应用。1. 启动注册中心对于一个微服务化的应用来说,注册中心是不可或缺的一个组件。只有通过注册中心,消费端才可以成功发现服务端的地址信息,进而进行调用。为了让本教程更易于上手,我们提供了一个基于 Apa

2023-02-02 14:20:32 453

原创 Dubbo 入门系列之快速部署一个微服务应用

本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用。背景Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。为了实现这样一个目标,Dubbo 引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。目标了解微服务调用的方式以及 Dubbo 的能力

2023-02-01 14:12:57 300

原创 What‘s new in Dubbo 3.1.5 and 3.2.0-beta.4

在 1 月 27 日,新年伊始,Dubbo 3.1.5 和 3.2.0-beta.4 正式通过投票发布。本文将介绍发布的变化一览。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 支持记录请求的记录,便于

2023-01-30 11:59:24 385

原创 一文了解 Dubbo 3 配置工作原理

Dubbo 配置方式和工作原理的深度解读,包括配置格式、设计思路、来源、加载流程等。

2023-01-09 07:41:26 171

原创 一文了解 Dubbo 3 配置工作原理

以下是一个 Dubbo 属性配置的例子 dubbo-spring-boot-samples ## application.properties # Spring boot application spring.application.name=dubbo-externalized-configuration-provider-sample # Base packages to scan Dubbo Component: @com.alibaba.dubbo.config.annotati

2023-01-09 07:37:07 153

原创 一文了解 Dubbo 3 配置工作原理

以下是一个 Dubbo 属性配置的例子 dubbo-spring-boot-samples ## application.properties # Spring boot application spring.application.name=dubbo-externalized-configuration-provider-sample # Base packages to scan Dubbo Component: @com.alibaba.dubbo.config.annotati

2023-01-09 07:34:47 94

原创 一文了解 Dubbo 3 配置工作原理

以下是一个 Dubbo 属性配置的例子 dubbo-spring-boot-samples ## application.properties # Spring boot application spring.application.name=dubbo-externalized-configuration-provider-sample # Base packages to scan Dubbo Component: @com.alibaba.dubbo.config.annotati

2023-01-09 07:33:13 109

原创 Dubbo 3 端口协议复用

特性说明通过对protocol进行配置,dubbo3可以支持端口的协议复用。比如使用Triple协议启动端口复用后,可以在相同的端口上为服务增加Dubbo协议支持,以及Qos协议支持。这些协议的识别都是由一个统一的端口复用服务器进行处理的,可以用于服务的协议迁移,并且可以节约端口以及相关的资源,减少运维的复杂性。在服务的创建阶段,通过从Config层获取到服务导出的协议配置从而创建不同的Protocol对象进行导出。在导出的过程中,如果不是第一次创建端口复用的Server,那么Exchang

2023-01-05 16:57:58 220

原创 浅析 Dubbo 3.0 中接口级地址推送性能的优化

URL 简介在阐述地址推送性能的具体优化之前,我们有必要先了解一下与之息息相关的内容 --- URL。定义在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 (RFC1738――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单。因特网上的可用资源可以用简单字符串来表示,该文档就是描述了这种字符串的语法和语 义。而这些字符串则被称为:“统一资源定位器”(URL)一个标准的 URL 格式至

2023-01-04 11:29:07 182

原创 Proxyless Mesh 在 Dubbo 中的实践

背景随着 Dubbo 3.1 的 release,Dubbo 在云原生的路上又迈出了重要的一步。在这个版本中添加了 Proxyless Mesh 的新特性,Dubbo Proxyless Mesh 直接实现 xDS 协议解析,实现 Dubbo 与 Control Plane 的直接通信,进而实现控制面对流量管控、服务治理、可观测性、安全等的统一管控,规避 Sidecar 模式带来的性能损耗与部署架构复杂性。什么是Service MeshService Mesh 又译作 “服务网格”,作为服务间通信的

2023-01-03 10:13:40 114

原创 Dubbo 3 之 Triple 流控反压原理解析

作者:顾欣Triple 是 Dubbo 3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo 2 私有协议带来的互通性问题。Triple 基于 HTTP/2 定制自己的流控,支持通过特定的异常通知客户端业务层服务端负载高情况,保护了服务端被大流量击垮,提高系统高可用能力。一、流控反压现状客户端和服务器端在接收数据的时候有一个缓冲区来临时存储数据,但是缓冲区的大小是有限制的,所以有可能会出现缓冲区溢出的情况,HTTP 通过流控保护数据溢出丢失风险。1、HTTP/1 流控在 HT

2022-12-30 10:02:32 141

原创 Triple 协议支持 Java 异常回传的设计与实现

一文了解 Dubbo 3 中 Triple 协议支持 Java 异常回传的设计与实现

2022-12-29 11:01:47 130

原创 基于 Dubbo Admin 实现同机房/区域优先

Dubbo提供动态配置同机房/区域优先的服务治理能力,可以在无需重启应用的情况下,动态配置同机房/区域优先。Dubbo可以通过XML配置,注解配置,动态配置同机房/区域优先,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息当应用部署在多个不同机房/区域的时候,应用之间相互调用会出现跨区域的情况,跨区域调用会增加响应时间。同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者。Dubbo-Admin提供了动态的同机房/区域优先

2022-12-28 20:27:12 230

原创 基于 Dubbo Admin 通过权重调整流量分布

Dubbo提供通过权重调整流量分布的服务治理能力,可以在无需重启应用的情况下,通过权重动态调整流量分布。Dubbo可以通过XML配置,注解配置,动态配置实现通过权重调整流量分布,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息在机器性能差异的场景下,不同机器的负载需要进行系统评估,需要对某些机器降级。通过权重调整机器的流量比例,可以合理地评估机器性能。某些服务会面临流量冲击,为了保证核心服务的可用性,需要对某些服务降级。通过权重调整流量

2022-12-28 20:27:08 299

原创 Dubbo 可扩展性设计

扩展设计理念可扩展性是任何一个系统所追求的,对于 Dubbo 来说是同样适用。什么是可扩展性可扩展性是一种设计理念,代表了我们对未来的一种预想,我们希望在现有的架构或设计基础上,当未来某些方面发生变化的时候,我们能够以最小的改动来适应这种变化。可扩展性的优点可扩展性的优点主要表现模块之间解耦,它符合开闭原则,对扩展开放,对修改关闭。当系统增加新功能时,不需要对现有系统的结构和代码进行修改,仅仅新增一个扩展即可。扩展实现方式一般来说,系统会采用 Factory、IoC、OSGI 等方式管理扩展(

2022-12-27 11:01:38 182

原创 从零演示如何基于 IDL 方式来定义 Dubbo 服务并使用 Triple 协议

使用 IDL 定义服务具有更好的跨语言友好性,然而 Triple 协议并不是和 IDL 强绑定的,也可以使用 Java Interface + Pojo 的方式定义服务并启用 Triple 协议,具体可参见示例。更多 Triple 和 IDL 使用方式,请参考官方示例前置条件JDK 版本 >= 8已安装 Maven创建工程首先创建一个空的 maven 工程$ mvn archetype:generate \ -

2022-12-26 10:52:07 196

原创 Apache Dubbo 官方正式发布 Spring 6 & Spring Boot 3 支持

Dubbo 简介Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。背景Spring Framework 6.0 于11月16日正式发布 GA 版本

2022-12-23 16:14:28 506

原创 What‘s new in Dubbo 3.1.4 and 3.2.0-beta.3

在 12 月 22 日,Dubbo 3.1.4 和 3.2.0-beta.3 正式通过投票发布。本文将介绍发布的变化一览。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 列表访问所

2022-12-22 16:13:12 140

原创 基于 Dubbo-Admin 实现根据请求条件路由

Dubbo提供动态创建条件路由的服务治理能力,可以在无需重启应用的情况下,根据请求发起方、请求的方法条件路由。Dubbo可以通过XML配置,注解配置,动态配置实现动态根据请求条件路由,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息在业务场景如黑白名单,排除预发布机,只暴露部分机器,分环境隔离等,需要路由规则在发起RPC调用前过滤目标服务器地址,过滤后的地址作为最终发起RPC调用的备选地址。Dubbo-Admin提供条件路由的能力,能够帮

2022-12-22 09:59:05 180

原创 基于 Dubbo Admin 实现流量灰度

Dubbo提供流量灰度的服务治理能力,可以在无需重启应用的情况下,配置标签路由规则和条件路由实现灰度发布。Dubbo可以通过XML配置,注解配置,动态配置实现流量灰度,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息在产品开发中会遇到需求变化、版本迭代的场景,为了兼顾需求变化和系统稳定,发布要尽可能平滑,影响人群要由少到多,一旦有问题马上回滚。Dubbo-Admin提供了动态的流量灰度能力,能够帮助您对新服务作标,服务平滑发布,提高服务的

2022-12-21 11:37:59 121

原创 基于 Dubbo Admin 动态进行流量隔离

Dubbo提供动态流量隔离的服务治理能力,可以在无需重启应用的情况下,动态进行流量隔离。Dubbo可以通过XML配置,注解配置,动态配置实现流量隔离,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息如果一个应用有多个版本在线上同时运行,部署在不同环境中,如日常环境和特殊环境,则可以使用标签路由对不同环境中的不同版本进行流量隔离,将秒杀订单流量或不同渠道订单流量路由到特殊环境,将正常的流量路由到日常环境。即使特殊环境异常,本应进入特殊环境的

2022-12-20 10:24:56 76

原创 如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用

Dubbo 还提供了包括XML、API等多种启动与接入方式,更多开发方式和配置细节可参见配置手册。下载示例代码完整示例代码在 dubbo-samples 中。下载源码git clone -b master https://github.com/apache/dubbo-samples.git进入示例目录cd dubbo-samples/1-basic/dubbo-samples-spring-bootls # 查看目录结构快速运行示例编译 Provider在 dubbo-sam

2022-12-20 08:50:58 178

原创 基于 Dubbo Admin 临时踢除问题服务实例

Dubbo提供临时踢除问题服务实例的服务治理能力,可以在无需重启应用的情况下,临时踢除问题服务实例。Dubbo可以通过XML配置,注解配置,动态配置实现临时踢除问题服务实例,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息服务在线上运行的过程中,难免遇到某些节点有问题,为了不影响整体服务的正常运行,需要临时下线问题的服务实例。Dubbo-Admin提供了临时踢除问题服务实例能力,能够帮助您临时下线问题服务实例,不影响整体服务的运行。操作

2022-12-19 11:16:57 193

原创 基于 Dubbo Admin 动态调整服务超时时间

Dubbo提供动态调整超时时间的服务治理能力,可以在无需重启应用的情况下,动态调整服务超时时间。Dubbo可以通过XML配置,注解配置,动态配置实现动态调整超时时间,这里主要介绍动态配置的方式,其他配置方式请参考旧文档配置开始之前请确保成功运行Dubbo-Admin背景信息在日常工作中会遇到各类超时配置,业务逻辑变更后,已有调用关系随着业务发展可能需要不断调整,相应服务接口响应时间的变化可能需要上线后才能确定。Dubbo-Admin提供了动态的超时配置能力,能够帮助您快速动态调整接口超时时间,提高

2022-12-19 09:54:15 255

原创 一文速览 Dubbo 3.0

本文将带你快速了解 Dubbo3 的设计背景、总体架构与核心特性、与典型用户如阿里巴巴 HSF2 的关系等。也可以通过如下部分了解更多:小白用户,快速浏览 Dubbo3 核心特性:下一代通信协议 - Triple百万实例集群的秘密 - 应用级服务发现Dubbo MeshDubbo3 的兼容性与迁移成本?Java - 迁移指南Golang - 迁移指南Dubbo3 相关资源:更多资料,如性能指标、高级特性说明等请参考 多语言 SDK 实现背景Dubbo3 的设计与开发有两

2022-12-17 10:17:18 205

原创 一文了解 Dubbo 的代码架构

整体设计图例说明:图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把

2022-12-10 23:25:51 142

原创 聚焦稳定性,Dubbo 发版规划公布

Dubbo 简介Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。我应该如何选择版本?对于这个问题,一直以来 Dubbo 都没有很好地去回答。究其

2022-12-06 14:09:45 396

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

本篇为同程艺龙旅行网 Apache Dubbo 的实践案例总结。感兴趣的朋友可以访问官网了解更多详情,或搜索关注官方微信公众号 Apache Dubbo 跟进最新动态。作者信息: 严浩:同程艺龙高级开发,负责服务治理相关工作, Apache Dubbo Committer。 胥皓:同程艺龙高级开发,负责服务治理相关工作。Dubbo3在同程旅行的实践背景在微服务发展初期,市场上还没有成熟和流行的 RPC 框架,我们公司内部自研开发了一套名为 DSF (Distributed Serv

2022-12-01 09:18:38 137

原创 Dubbo 3.1.3、3.2.0-beta.2 正式发布

Dubbo 3.1.3修改内容修复本地调用的过程中 Filter 顺序异常的问题支持导入协议配置项到 MetadataService支持在发布 MetadataService 时自动选择可用端口完善错误码内容泛化调用下支持一致性哈希负载均衡修复泛化调用时反序列化异常的问题修复由于 JVM Methods 顺序不一致导致的应用级元数据无法复用的问题默认关闭端口复用能力,修复 remoting 组建找不到 SPI 的问题修复由于引用计数异常导致的 safe gard 问题删除 Naco

2022-11-30 09:43:10 158

原创 实践案例:平安健康的 Dubbo3 迁移历程总结

本篇是 Apache Dubbo 的实践案例。感兴趣的朋友可以访问官网了解更多详情,或搜索关注官方微信公众号 Apache Dubbo 跟进最新动态。1 背景我们公司从15年开始就使⽤dubbo作为微服务框架,当社区推出dubbo3时,我们也⽴刻跟进并做了深⼊调研,发现dubbo3 的应⽤/实例级服务注册和发现模式能够在一定程度上解决我们当前注册中⼼⾯临的压⼒,解决稳定性和安全性问题。同时dubbo3在服务治理上也做了升级,契合云原⽣架构,⽽且dubbo3能够向下兼容dubbo2,这也将降低升级的

2022-11-29 17:57:38 104

原创 实践案例:平安健康的 Dubbo3 迁移历程总结

本篇是 Apache Dubbo 的实践案例。感兴趣的朋友可以访问官网了解更多详情,或搜索关注官方微信公众号 Apache Dubbo 跟进最新动态。1 背景我们公司从15年开始就使⽤dubbo作为微服务框架,当社区推出dubbo3时,我们也⽴刻跟进并做了深⼊调研,发现dubbo3 的应⽤/实例级服务注册和发现模式能够在一定程度上解决我们当前注册中⼼⾯临的压⼒,解决稳定性和安全性问题。同时dubbo3在服务治理上也做了升级,契合云原⽣架构,⽽且dubbo3能够向下兼容dubbo2,这也将降低升级的

2022-11-29 17:53:59 64

原创 实践案例:平安健康的 Dubbo3 迁移历程总结

本篇是 Apache Dubbo 的实践案例。感兴趣的朋友可以访问官网了解更多详情,或搜索关注官方微信公众号 Apache Dubbo 跟进最新动态。1 背景我们公司从15年开始就使⽤dubbo作为微服务框架,当社区推出dubbo3时,我们也⽴刻跟进并做了深⼊调研,发现dubbo3 的应⽤/实例级服务注册和发现模式能够在一定程度上解决我们当前注册中⼼⾯临的压⼒,解决稳定性和安全性问题。同时dubbo3在服务治理上也做了升级,契合云原⽣架构,⽽且dubbo3能够向下兼容dubbo2,这也将降低升级的

2022-11-29 17:49:05 80

原创 一文带你快速入门 Go 语言微服务开发 - Dubbo Go 入门实践总结

更多详细示例可直接访问 Dubbo 官网 或搜索关注官方微信公众号:Apache Dubbo1. 安装Go语言环境建议使用最新版 go 1.17go version >= go 1.15【Go 语言官网下载地址】将 $GOPATH/bin 加入环境变量2. 安装序列化工具protoc【protoc 下载地址】3. 安装 dubbogo-cli 以及相关插件执行以下指令安装dubbogo-cli 至 $GOPATH/bin$ export GOPROXY="https:

2022-11-29 17:06:49 541

原创 Apache Dubbo 多语言体系再添新员:首个 Rust 语言版本正式发布

Dubbo Rust 定位为 Dubbo 多语言体系的重要实现,提供高性能、易用、可扩展的 RPC 框架,同时通过接入 Dubbo Mesh 体系提供丰富的服务治理能力。本文主要为大家介绍 Dubbo Rust 项目基本情况,通过一个示例快速体验 Rust 首个正式版本特性,并给出了 Dubbo Rust 社区的近期规划,适合于关注或正在学习 Rust 语言的开发者与企业用户阅读。完整示例可以直接访问项目官网 Dubbo Rust Quick Start 或搜索关注官方微信公众号:Apache Dubb

2022-11-25 19:45:45 261

原创 源码解析:Dubbo3 的 Spring 适配原理与初始化流程

Dubbo 国内影响力最大的开源框架之一,非常适合构建大规模微服务集群的,提供开发框架、高性能通信、丰富服务治理等能力。同时 Dubbo 无缝支持 Spring、Spring Boot 模式的开发,这篇文章帮助大家理解 Dubbo 是怎么和 Spring 做集成的,非常适合关心原理是先的开发者。 感兴趣的朋友可以直接访问官网体验 Spring+Dubbo 开发微服务 或搜索关注官方微信公众号:Apache DubboSpring Context Initialization首先,我们先来看一下S

2022-11-24 21:13:42 281 1

原创 Apache Dubbo开源项目官方博客正式启用

Apache Dubbo开源项目官方博客正式启用

2022-11-22 20:23:58 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除