写点什么

【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)

作者:洛神灬殇
  • 2023-01-17
    广东
  • 本文字数:1941 字

    阅读完需:约 6 分钟

【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)

承接上文

通过之前的【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(上),让我们对 Dubbo3 的三中心架构体系有了一定的认识和了解。

Dubbo3 的三中心部署架构

回顾一下部署架构(注册中心、配置中心、元数据中心),了解 Dubbo3 的三大中心化组件,它们各自的职责、工作方式。


微服务框架,Dubbo SDK 跟随着微服务组件被部署在分布式集群各个位置,为了在分布式环境下实现各个微服务组件间的协作。

Dubbo 定义了一些中心化组件

  • 注册中心:协调 Consumer 与 Provider 之间的地址注册与发现

  • 配置中心:

  • 存储 Dubbo3 启动阶段的全局配置,保证配置的跨环境共享与全局一致性。

  • 负责服务治理规则(路由规则、动态配置等)的存储与推送。

  • 元数据中心:

  • 接收 Provider 上报的服务接口元数据,为 Admin 等控制台提供运维能力(如:服务测试、接口文档等)。

  • 服务发现机制的补充,提供额外的接口/方法级别配置信息的同步能力,相当于注册中心的额外扩展。



上图完整的描述了 Dubbo3 微服务组件与各个中心的交互过程。

使用 Nacos 服务建立三中心体系

开展我们启动 Nacos 服务的搭建过程,此部分我们可以参考之前的文章:【深入浅出 Dubbo3 原理及实战】「SpringCloud-Alibaba 系列」基于 Nacos 作为注册中心进行发布 SpringCloud-alibaba 生态的 RPC 接口实战,进行部署对应的 Nacos 即可。

Nacos 对接 Dubbo 的注册中心、配置中心和元数据中心

接下来我们需要针对于 Nacos 如何配置和对接我们的三中心体系进行相关的介绍和分析。Dubbo 的注册中心、配置中心和元数据中心

Nacos 如何对接 Dubbo3 的配置中心和元数据中心

针对于 Nacos 对接注册中心的方案之前我们已经对接过了,在这里我们就不过多的赘述,我们目前主要针对于配置中心以及元数据中心进行分析如何开发。

元数据中心

首先我们需要针对于 SpringBoot 的项目的配置进行配置添加 dubbo3 的配置,进行配置 maven 依赖。


zookeeper 的元数据中心的配置(3.0.7 的 dubbo 版本)


<dependency>    <groupId>org.apache.dubbo</groupId>    <artifactId>dubbo-metadata-report-zookeeper</artifactId>    <version>3.0.7</version></dependency>
复制代码


redis 的元数据中心的配置(3.0.7 的 dubbo 版本)


<dependency>    <groupId>org.apache.dubbo</groupId>    <artifactId>dubbo-metadata-report-redis</artifactId></dependency>
复制代码


nacos 的元数据中心的配置(3.0.7 的 dubbo 版本)


<dependency>    <groupId>org.apache.dubbo</groupId>    <artifactId>dubbo-metadata-report-nacos</artifactId></dependency>
复制代码


在这里我们选择的是 nacos 的配置,之后进行配置选择,针对于 application.properties 文件的配置如下:


元数据中心的 applicaion.properties 配置


dubbo.metadata-report.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacosdubbo.metadata-report.retry-times=5dubbo.metadata-report.retry-period=5000dubbo.metadata-report.cycle-report=false
复制代码


对应的常用配置:


  • dubbo.metadata-report.address:元数据中心的地址,此时可以配置 nacos 的地址,nacos 的地址为 nacos://ip:8848,代表 dubbo 会把 nacos 作为元数据中心,进行上报对应的接口信息和应用名称关系等。

  • dubbo.metadata-report.retry-times: 元数据中心的地址,如果上报数据之后,出现了失败场景,会进行重试的次数,我们可以配置 5 次。,默认 100

  • dubbo.metadata-report.retry-period: 重试执行的间隔时间,单位为毫秒,重试周期,默认 3000ms。

  • dubbo.metadata-report.cycle-report: 定时刷新,默认开启(true),可以通过设置 cycleReport=false 进行关闭。


即可完成元数据中心的对应的 Dubbo3 的对接配置。

配置中心

相比配置中心不支持 redis,所以我们主要采用 nacos 去实现配置中心的挂载对接。


nacos 的配置中心的配置(3.0.7 的 dubbo 版本)


<dependency>      <groupId>org.apache.dubbo</groupId>      <artifactId>dubbo-configcenter-nacos</artifactId>      <version>3.0.7</version> </dependency>
复制代码


zookeeper 的配置中心的配置(3.0.7 的 dubbo 版本)


<dependency>      <groupId>org.apache.dubbo</groupId>      <artifactId>dubbo-configcenter-zookeeper</artifactId>      <version>3.0.7</version> </dependency>
复制代码


配置中心的 applicaion.properties 配置


zookeeper 的配置


dubbo.config-center.address=zookeeper://${config-center.address:127.0.0.1}:2181
复制代码


nacos 的配置


dubbo.config-center.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos
复制代码


即可完成对应的配置中心的配置机制


最后配置中心和元数据中心对接 Nacos 内部的配置分析,大家可以尝试配置一下看看对应的效果即可。下一篇文章会给大家展示效果。

发布于: 刚刚阅读数: 4
用户头像

洛神灬殇

关注

🏆 InfoQ写作平台-签约作者 🏆 2020-03-25 加入

【个人简介】酷爱计算机科学、醉心编程技术、喜爱健身运动、热衷悬疑推理的“极客达人” 【技术格言】任何足够先进的技术都与魔法无异 【技术范畴】Java领域、Spring生态、MySQL专项、微服务/分布式体系和算法设计等

评论

发布
暂无评论
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)_dubbo_洛神灬殇_InfoQ写作社区