张贴在 2022

  • 06-Dubbo的SPI扩展机制之普通扩展对象的创建与Wrapper机制的源码解析

    Saturday, August 06, 2022 在 Dubbo3 [v3.0.8] 源码解析

    6 Dubbo的SPI扩展机制之普通扩展对象的创建与Wrapper机制的源码解析 6.1 普通扩展对象的加载与创建 这里我们要分析的是ExtensionLoader类型的getExtension(String name)方法, 有了前面自适应扩展的铺垫,这里就更容易来看了getExtension是根据扩展名字获取具体扩展的通用方法,我们来根据某个类型来获取扩展的时候就是走的这里,比如在这个博客开头的介绍: ApplicationModel中获取配置管理器对象 configManager = …

    更多

  • 05-自适应扩展对象的创建getAdaptiveExtension方法

    Friday, August 05, 2022 在 Dubbo3 [v3.0.8] 源码解析

    5 自适应扩展对象的创建getAdaptiveExtension方法 自适应扩展又称为动态扩展,可以在运行时生成扩展对象 ExtensionLoader中的getAdaptiveExtension()方法,这个方法也是我们看到的第一个获取扩展对象的方法. ,这个方法可以帮助我们通过SPI机制从扩展文件中找到需要的扩展类型并创建它的对象, 自适应扩展:如果对设计模式比较了解的可能会联想到适配器模式,自适应扩展其实就是适配器模式的思路,自适应扩展有两种策略: 一种是我们自己实现自适应扩展:然后使 …

    更多

  • 04-Dubbo的扩展机制

    Thursday, August 04, 2022 在 Dubbo3 [v3.0.8] 源码解析

    4-Dubbo的扩展机制 4.1 回顾我们前面使用到扩展场景 在上一章中我们初始化应用模型对象的时候,了解到有几个地方用到了扩展机制来创建对象,这一章我们会详细来讲一下这个扩展对象的加载过程,这里我们先来回顾下哪些地方用到了扩展机制: // 使用扩展机制获取TypeBuilder Set<TypeBuilder> tbs = model.getExtensionLoader(TypeBuilder.class).getSupportedExtensionInstances(); // …

    更多

  • 03-框架,应用程序,模块领域模型Model对象的初始化

    Wednesday, August 03, 2022 在 Dubbo3 [v3.0.8] 源码解析

    3-框架,应用程序,模块领域模型Model对象的初始化 在上一章中我们详细看了服务配置ServiceConfig类型的初始化,不过我们跳过了AbstractMethodConfig的构造器中创建模块模型对象的过程,那这一章我们就来看下模块模型对象的初始化过程: public AbstractMethodConfig() { super(ApplicationModel.defaultModel().getDefaultModule()); } 那为什么会在Dubbo3的新版本中加入这个域模型呢, …

    更多

  • 02-启动服务前服务配置ServiceConfig类型是如何初始化的?

    Tuesday, August 02, 2022 在 Dubbo3 [v3.0.8] 源码解析

    2-启动服务前服务配置ServiceConfig类型是如何初始化的? 2.1 示例源码回顾: 为了方便我们理解记忆,这里先来回顾下上一章我们说的示例代码,如下所示: public class Application { public static void main(String[] args) throws Exception { startWithBootstrap(); } private static void startWithBootstrap() { …

    更多

  • 01 从一个服务提供者的Demo说起

    Monday, August 01, 2022 在 Dubbo3 [v3.0.8] 源码解析

    1 从一个服务提供者的Demo说起 为了更方便了解原理,我们先来编写一个Demo,从例子中来看源码实现: 1.1 启动Zookeeper 为了Demo可以正常启动,需要我们先在本地启动一个Zookeeper如下图所示: 1.2 服务提供者 接下来给大家贴一下示例源码,这个源码来源于Dubbo源码目录的 dubbo-demo/dubbo-demo-api 目录下面的dubbo-demo-api-provider子项目,这里我做了删减,方便看核心代码: 首先我们定义一个服务接口如下所示: …

    更多

  • Dubbo Java 3.1.3 正式发布

    Monday, July 18, 2022 在 社区动态

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

    更多

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

    Thursday, June 23, 2022 在 源码分析

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

    更多

  • 如何通过 Apache ShenYu 网关代理 Dubbo 服务

    Wednesday, May 04, 2022 在 生态集成

    1. 介绍 Apache ShenYu Apache ShenYu(Incubating) 是一个异步的,高性能的,跨语言的,响应式的 API 网关。兼容各种主流框架体系,支持热插拔,用户可以定制化开发,满足用户各种场景的现状和未来需求,经历过大规模场景的锤炼。 2021年5月,ShenYu捐献给 Apache 软件基金会,Apache 基金会全票通过,顺利进入孵化器。 Apache Dubbo Apache Dubbo 是一款微服务开发框架,它提供了 RPC 通信 与 微服务治理 两大关键能 …

    更多

  • 谈谈Pixiu的Filter

    Saturday, February 19, 2022 在 Pixiu

    Filter的生命周期 Pixiu作为一个面向云原生的gateway,通过简单的配置即可代理Http to Dubbo 2、Tripe甚至是Spring Cloud的请求。那Filter是怎样运行的呢? 首先Filter Plugin向Filter Manager注册自己**,然后Filter Manager根据配置创建好Filter Factory并持有它们,等待请求来临时,Manager创建一个一次性的用于此次请求的Filter Chain,然后利用Factory创建 …

    更多