张贴在 2022

  • 22-Dubbo3消费者自动感应决策应用级服务发现原理

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

    22-Dubbo3消费者自动感应决策应用级服务发现原理 22.1 简介 这里要说的内容对Dubbo2迁移到Dubbo3的应用比较有帮助,消费者应用级服务发现做了一些自动决策的逻辑来决定当前消费者是应用级发现还是接口级服务发现,这里与前面说的提供者双注册的原理是对等的,提供者默认同时进行应用级注册和接口级注册,消费者对提供者注册的数据来决定使用应用级发现或者接口级发现。这些都是默认的行为,当然对于消费者来说还可以自定义其他的迁移规则,具体的需要我们详细来看逻辑。 如果说对于迁移过程比较感兴趣可以直 …

    更多

  • 21-Dubbo3消费者引用服务入口

    Sunday, August 21, 2022 在 Dubbo3 [v3.0.8] 源码解析

    21-Dubbo3消费者引用服务入口 21.1 简介 前面我们通过Demo说了一个服务引用配置的创建。另外也在前面的文章说了服务提供者的启动完整过程,不过在说服务提供者启动的过程中并未提到服务消费者是如何发现服务,如果调用服务的,这里先就不再说关于服务消费者启动的一个细节了,直接来看前面未提到的服务消费者是如何引用到服务提供者提供的服务的。 先来回顾下样例代码: public class ConsumerApplication { public static void main(String[] …

    更多

  • 20-Dubbo3服务引用配置ReferenceConfig

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

    20-Dubbo3服务引用配置ReferenceConfig 20.1 简介 前面简单介绍了一下消费者的例子,消费者创建的第一步就是先进行消费者信息的配置对应类型为ReferenceConfig,这里详细来看ReferenceConfig包含哪些信息?先简单了解下消费者配置的类型关系如下图所示:引用配置与服务配置类型都是通过继承接口配置来扩展的,在分析生产者的时候详细介绍过服务相关的配置,这里来详细看消费者引用者的相关配置信息. 前面例子说了消费者配置对象的创建主要是通过如下代码: …

    更多

  • 19 重新来过从一个服务消费者的Demo说起

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

    19 重新来过从一个服务消费者的Demo说起 为了更方便了解原理,我们先来编写一个Demo,从例子中来看源码实现:,前面说了提供者现在已经有服务注册上去了,那接下来我们编写一个消费者的例子来进行服务发现与服务RPC调用。 19.1 启动Zookeeper 为了Demo可以正常启动,需要我们先在本地启动一个Zookeeper如下图所示: 19.2 服务消费者 接下来给大家贴一下示例源码,这个源码来源于Dubbo源码目录的 dubbo-demo/dubbo-demo-api 目录下面 …

    更多

  • 18-Dubbo3元数据服务MetadataService的导出

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

    18-Dubbo3元数据服务MetadataService的导出 18.1 简介 MetadataService 此服务用于公开Dubbo进程内的元数据信息。典型用途包括: 使用者查询提供者的元数据信息,以列出接口和每个接口的配置 控制台(dubbo admin)查询特定进程的元数据,或聚合所有进程的数据。在Dubbo2.x的时候,所有的服务数据都是以接口的形式注册在注册中心. Dubbo3将部分数据抽象为元数据的形式来将数据存放在元数据中心,然后元数据由服务提供者提供给消费者而不是再由注册中心 …

    更多

  • 17-Dubbo服务提供者的双注册原理

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

    17-Dubbo服务提供者的双注册原理 17.1 简介 上个博客《15-Dubbo的三大中心之元数据中心源码解析》导出服务端的时候多次提到了元数据中心,注册信息的注册。 Dubbo3出来时间不太长,对于现在的用户来说大部分使用的仍旧是Dubbo2.x, Dubbo3 比较有特色也是会直接使用到的功能就是应用级服务发现: 应用级服务发现 从服务/接口粒度到应用粒度的升级,使得 Dubbo 在集群可伸缩性、连接异构微服务体系上更具优势。应用粒度能以更低的资源消耗支持超百万实例规模集群程; …

    更多

  • 16-模块发布器发布服务全过程

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

    16-模块发布器发布服务全过程 16.1 简介 Dubbo做为服务治理框架,比较核心的就是服务相关的概念,这里我先贴个找到的关于Dubbo工作原理的架构图: 如果按完整服务启动与订阅的顺序我们可以归结为以下6点: 导出服务(提供者) 服务提供方通过指定端口对外暴露服务 注册服务(提供者) 提供方向注册中心注册自己的信息 (服务发现)-订阅服务(消费者) 服务调用方通过注册中心订阅自己感兴趣的服务 (服务发现)-服务推送(消费者) 注册中心向调用方推送地址列表 调用服务(消费者调用提供者) 调用方 …

    更多

  • 15-Dubbo的三大中心之元数据中心源码解析

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

    15-Dubbo的三大中心之元数据中心源码解析 15.1 简介 关于元数据中心的概念对于大部分用户来说是比较陌生的,配置中心的话我们还好理解,对于元数据中心是什么,我们来看下我从官网拷贝过来的一段文字: 元数据中心在2.7.x版本开始支持,随着应用级别的服务注册和服务发现在Dubbo中落地,元数据中心也变的越来越重要。在以下几种情况下会需要部署元数据中心: 对于一个原先采用老版本Dubbo搭建的应用服务,在迁移到Dubbo 3时,Dubbo 3 会需要一个元数据中心来维护RPC服务与应用的映射关 …

    更多

  • 14-Dubbo配置加载全解析

    Sunday, August 14, 2022 在 Dubbo3 [v3.0.8] 源码解析

    14-Dubbo配置加载全解析 14.1 回到启动器的初始化过程 在应用程序启动的时候会调用发布器的启动方法 ,然后调用初始化方法,在发布器DefaultApplicationDeployer中的初始化方法initialize() 如下: @Override public void initialize() { if (initialized) { return; } // Ensure that the initialization is completed when concurrent …

    更多

  • 13-Dubbo的三大中心之配置中心

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

    13-Dubbo的三大中心之配置中心 13.1 配置中心简介 百度了一段不错的文字来介绍配置中心,我看了下肯定比我写的好多了,那我就直接拷贝过来一起看: 对于传统的单体应用而言,常使用配置文件来管理所有配置,比如SpringBoot的application.yml文件,但是在微服务架构中全部手动修改的话很麻烦而且不易维护。微服务的配置管理一般有以下需求: 集中配置管理,一个微服务架构中可能有成百上千个微服务,所以集中配置管理是很重要的。 不同环境不同配置,比如数据源配置在不同环境(开发,生产,测 …

    更多