承接上文
通过之前的【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版本)
xml
复制代码
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-metadata-report-zookeeper</artifactId> <version>3.0.7</version> </dependency>
redis的元数据中心的配置(3.0.7的dubbo版本)
xml
复制代码
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-metadata-report-redis</artifactId> </dependency>
nacos的元数据中心的配置(3.0.7的dubbo版本)
xml
复制代码
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-metadata-report-nacos</artifactId> </dependency>
在这里我们选择的是nacos的配置,之后进行配置选择,针对于application.properties文件的配置如下:
元数据中心的applicaion.properties配置
properties
复制代码
dubbo.metadata-report.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos dubbo.metadata-report.retry-times=5 dubbo.metadata-report.retry-period=5000 dubbo.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版本)
xml
复制代码
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-configcenter-nacos</artifactId> <version>3.0.7</version> </dependency>
zookeeper的配置中心的配置(3.0.7的dubbo版本)
xml
复制代码
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-configcenter-zookeeper</artifactId> <version>3.0.7</version> </dependency>
配置中心的applicaion.properties配置
zookeeper的配置
properties
复制代码
dubbo.config-center.address=zookeeper://${config-center.address:127.0.0.1}:2181
nacos的配置
properties
复制代码
dubbo.config-center.address=nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos
即可完成对应的配置中心的配置机制。
最后配置中心和元数据中心对接Nacos内部的配置分析,大家可以尝试配置一下看看对应的效果即可。下一篇文章会给大家展示效果。