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

洛神灬殇 洛神灬殇     2023-01-12     692

关键词:

承接上文

通过之前的【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=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版本)
<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内部的配置分析,大家可以尝试配置一下看看对应的效果即可。下一篇文章会给大家展示效果。

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

Dubb3的应用级服务发现Dubbo3提供了全新的应用级服务发现模型,该模型在设计与实现上区别于Dubbo2的接口级服务发现模型。概括来说,Dubbo3引入的应用级服务发现主要有以下优势适配云原生微服务变革。云原生时代的基础设施能... 查看详情

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

Dubb3的应用级服务发现Dubbo3提供了全新的应用级服务发现模型,该模型在设计与实现上区别于Dubbo2的接口级服务发现模型。概括来说,Dubbo3引入的应用级服务发现主要有以下优势适配云原生微服务变革。云原生时代的基础... 查看详情

三分钟带你了解nacos:架构及部署(代码片段)

...您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的... 查看详情

dubbo3终极特性「流式协议体系」dubbo3服务的流式处理和响应式编程实战开发指南(代码片段)

...取消和超时Triple新特性之Stream(流式处理)Stream流式处理是Dubbo3新提供的一种调用类型,在以下场景时建议使用流的方式:接口需要发送大量数据,这些数据无法被放在一个RPC 查看详情

4项探索+4项实践,带你了解华为云视觉预训练研发技术

摘要:本文主要讲述云原生时代华为云在AI基础研究、视觉预训练模型研发和行业实践,以及AI开发平台ModelArts的最新进展。近日,在Qcon全球软件开发大会(深圳站)上,华为云人工智能领域首席科学家、IEEEFELLOW田奇博士,发表... 查看详情

dubbo3终极特性「请求流治理体系」一文教你如何搭建dubbo3的控制台服务dubbo-admin

...一个控制台,为Dubbo集群提供更好可视化服务。Admin支持Dubbo3并很好的兼容2.7.x、2.6.x和2.5.x。DubboAdmin的部署方式接下来我们主要会介绍有四种DubboAdmin部署到生产环境的方式基于Helm运行Admin基于Kubernetes运行Admin基于Docker运行Admin基... 查看详情

拥有新时代的通信协议,引领云原生迈向更高的舞台解密dubbo3是如何从微服务升华到云原生领域(代码片段)

感谢2020云原生微服务给我带来了云原生的希望!Dubbo3拥抱云原生升级总体路线我们会侧重于下面红色填充的部分,针对于Dubbo3云原生技术的领域的探索和研究:看Dubbo3带来了什么?要是说到Dubbo想必大家应该知道&... 查看详情

dubbo3终极特性「流量治理体系」一文教你如何搭建dubbo3的控制台服务dubbo-admin(代码片段)

...个控制台,为Dubbo集群提供更好可视化服务。Admin支持Dubbo3并很好的兼容2.7.x、2.6.x和2.5.x。DubboAdmin的部署方式接下来我们主要会介绍有四种DubboAdmin部署到生产环境的方式基于Helm运行Admin基于Kubernetes运行Admin基于Docker运行Admin... 查看详情

在dubbo3.0上服务治理的实践

简介: Dubbo3.0是在云原生背景下诞生的,使用Dubbo构建的微服务遵循云原生思想,能更好的复用底层云原生基础设施、贴合云原生微服务架构。Dubbo3.0介绍作者|十眠自从ApacheDubbo在2011年开源以来,经过多年一众大... 查看详情

云原生应用架构中的技术变革三:从集中专治到分散化

...征途,以快速创新、服务弹性扩展、支持交付价值等特性为征途奠基,使产品服务在市场中具备真正敏捷的竞争力!那么我们的服务要上云&#x 查看详情

云原生应用架构中的技术变革三:从集中专治到分散化

...征途,以快速创新、服务弹性扩展、支持交付价值等特性为征途奠基,使产品服务在市场中具备真正敏捷的竞争力!那么我们的服务要上云&#x 查看详情

云原生•kubernetesk8s功能特性k8s集群架构介绍(代码片段)

目录(k8s集群搭建先导篇)一、Kubernetes的特性/功能二、Kubernetes集群架构介绍1.masternode节点2.workernode节点三、Kubernetes核心概念1.Pod2.Controller3.Service一、Kubernetes的特性/功能自动装箱:基于容器对应用运行环境的资源配... 查看详情

dubbo3.0新特性总结

dubbo3.0的变化:  1.服务发现模型:      2.0采用基于接口粒度的服务发现机制,3.0基于应用粒度的服务发现机制,有利于提高系统资源利用率,降低Dubbo地址的单机内存消耗(50%),降低注册中... 查看详情

深入浅出dubbo3原理及实战「新特性简介」dubbo3新特性概览的介绍说明

Dubbo3的微服务框架系列本系列专题是关于Dubbo的简单介绍,涵盖Dubbo的核心概念、基本使用方式以及Dubbo3核心功能。Dubbo的基本介绍ApacheDubbo是一款微服务开发框架,它提供了RPC通信与微服务治理两大关键能力。使用Dubbo开... 查看详情

云原生之docker实战使用docker部署nacos平台

...、Nacos介绍1.Nacos简介2.Nacos作为配置中心作用3.Nacos的关键特性4.Nacos微服务架构图5.Nacos一致性架构图二、检查本地docker状态三、下载Nacos安装文件四、编辑安装yaml文件五、创建数据库相关文件1.编辑数据库初始化脚本2.数据库配置... 查看详情

深入浅出dubbo3原理及实战「新特性简介」dubbo3新特性要点之rpc协议介绍(代码片段)

RPC通信协议Dubbo3提供了Triple(Dubbo3)、Dubbo2协议,这是Dubbo框架的原生协议。除此之外,Dubbo3也对众多第三方协议进行了集成,并将它们纳入Dubbo的编程与服务治理体系,包括:gRPC、Thrift、JsonRPC、Hessian2、REST等。以下... 查看详情

dubbo3高级特性「框架与服务」开发内嵌式注册中心及多注册中心的开发实践(代码片段)

开发内嵌式注册中心引入Maven依赖<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId> 查看详情

云原生|从零开始学istio二istio核心特性与架构

istio核心特性Istio核心特性断路器超时重试多路由规则Istio架构写在最后Istio核心特性1、流控(trafficmanagement)断路器(circuitbreakers)、超时、重试、多路由规则、AB测试、灰度发布、按照百分比分配流量等。2、安全(security)加密、身份... 查看详情