解密 Dubbo 三大中心的部署架构

简介:Dubbo作为一个微服务框架,Dubbo SDK与应用服务绑定在同一个进程内,它跟随着应用服务被部署在分布式集群各个位置,为了在分布式环境下实现各个应用服务间的协作, Dubbo 定义了一些中心化组件。

作者 | 华钟明

01 部署架构

Dubbo 作为一个微服务框架,Dubbo SDK 与应用服务绑定在同一个进程内,它跟随着应用服务被部署在分布式集群各个位置,为了在分布式环境下实现各个应用服务间的协作, Dubbo 定义了一些中心化组件,这包括:

  • 注册中心:协调 Consumer 与 Provider 之间的地址注册与发现
  • 配置中心:
  • 存储 Dubbo 启动阶段的全局配置,保证配置的跨环境共享与全局一致性
  • 负责服务治理规则(路由规则、动态配置等)的存储与推送。
  • 元数据中心。
  • 接收 Provider 上报的服务接口元数据,为 Admin 等控制台提供运维能力(如服务测试、接口文档等)
  • 作为服务发现机制的补充,提供额外的接口/方法级别配置信息的同步能力,相当于注册中心的额外扩展

1.png

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

但是以上三个中心并不是运行 Dubbo 的必要条件,用户完全可以根据自身业务情况决定都不启用,或者只启用其中一个,亦或者启用多个,以达到简化部署的目的。通常情况下,所有用户都会以独立的注册中心 开始 Dubbo 服务开发,而配置中心、元数据中心则会在微服务演进的过程中逐步的按需被引入进来。

1、注册中心

注册中心扮演着非常重要的角色,它承载着服务注册和服务发现的职责。目前 Dubbo 支持以下两种粒度的服务发现和服务注册,分别是接口级别和应用级别,注册中心可以按需进行部署:

  • 在传统的 Dubbo SDK 使用姿势中,如果仅仅提供直连模式的 RPC 服务,不需要部署注册中心。
  • 无论是接口级别还是应用级别,如果需要 Dubbo SDK 自身来做服务注册和服务发现,则可以选择部署注册中心,在 Dubbo 中集成对应的注册中心。
  • 在 Dubbo + Mesh 的场景下,随着 Dubbo 服务注册能力的弱化,Dubbo 内的注册中心也不再是必选项,其职责开始被控制面取代,如果采用了 Dubbo + Mesh 的部署方式,无论是 ThinSDK的mesh 方式还是 Proxyless的mesh 方式,都不再需要独立部署注册中心。

而注册中心并不依赖于配置中心和元数据中心,如下图所示:

2.png

该图中没有部署配置中心和元数据中中心,在 Dubbo 中会默认将注册中心的实例同时作为配置中心和元数据中心,这是 Dubbo 的默认行为,如果确实不需要配置中心或者元数据中心的能力,可在配置中关闭,在注册中心的配置中有两个配置分别为 use-as-config-center 和 use-as-metadata-center,将配置置为 false 即可。

2、元数据中心

元数据中心在2.7.x版本开始支持,随着应用级别的服务注册和服务发现在Dubbo中落地,元数据中心也变的越来越重要。在以下几种情况下会需要部署元数据中心:

  1. 对于一个原先采用老版本Dubbo搭建的应用服务,在迁移到Dubbo 3时,Dubbo 3 会需要一个元数据中心来维护RPC服务与应用的映射关系(即接口与应用的映射关系),因为如果采用了应用级别的服务发现和服务注册,在注册中心中将采用“应用 ——  实例列表”结构的数据组织形式,不再是以往的“接口 —— 实例列表”结构的数据组织形式,而以往用接口级别的服务注册和服务发现的应用服务在迁移到应用级别时,得不到接口与应用之间的对应关系,从而无法从注册中心得到实例列表信息,所以Dubbo为了兼容这种场景,在Provider端启动时,会往元数据中心存储接口与应用的映射关系。
     
  2. 为了让注册中心更加聚焦与地址的发现和推送能力,减轻注册中心的负担,元数据中心承载了所有的服务元数据、大量接口/方法级别配置信息等,无论是接口粒度还是应用粒度的服务发现和注册,元数据中心都起到了重要的作用。

如果有以上两种需求,都可以选择部署元数据中心,并通过Dubbo的配置来集成该元数据中心。

元数据中心并不依赖于注册中心和配置中心,用户可以自由选择是否集成和部署元数据中心,如下图所示:

3.png

该图中不配备配置中心,意味着可以不需要全局管理配置的能力。该图中不配备注册中心,意味着可能采用了 Dubbo mesh 的方案,也可能不需要进行服务注册,仅仅接收直连模式的服务调用。

3、配置中心

配置中心与其他两大中心不同,它无关于接口级还是应用级,它与接口并没有对应关系,它仅仅与配置数据有关,即时没有部署注册中心和元数据中心,配置中心也能直接被接入到 Dubbo 应用服务中。在整个部署架构中,整个集群内的实例(无论是 Provider 还是 Consumer)都将会共享该配置中心集群中的配置,如下图所示:

4.png

该图中不配备注册中心,意味着可能采用了 Dubbo mesh 的方案,也可能不需要进行服务注册,仅仅接收直连模式的服务调用。

该图中不配备元数据中心,意味着 Consumer 可以从 Provider 暴露的 MetadataService 获取服务元数据,从而实现 RPC 调用。

02 保护三大中心高可用的部署架构

虽然三大中心已不再是 Dubbo 应用服务所必须的,但是在真实的生产环境中,一旦已经集成并且部署了该三大中心,三大中心还是会面临可用性问题,Dubbo 需要支持三大中心的高可用方案。在 Dubbo 中就支持多注册中心、多元数据中心、多配置中心,来满足同城多活、两地三中心、异地多活等部署架构模式的需求。

Dubbo SDK 对三大中心都支持了 Multiple 模式。

  • 多注册中心:Dubbo 支持多注册中心,即一个接口或者一个应用可以被注册到多个注册中心中,比如可以注册到ZK集群和Nacos集群中,Consumer 也能够从多个注册中心中进行订阅相关服务的地址信息,从而进行服务发现。通过支持多注册中心的方式来保证其中一个注册中心集群出现不可用时能够切换到另一个注册中心集群,保证能够正常提供服务以及发起服务调用。这也能够满足注册中心在部署上适应各类高可用的部署架构模式。
     
  • 多配置中心:Dubbo 支持多配置中心,来保证其中一个配置中心集群出现不可用时能够切换到另一个配置中心集群,保证能够正常从配置中心获取全局的配置、路由规则等信息。这也能够满足配置中心在部署上适应各类高可用的部署架构模式。
     
  • 多元数据中心:Dubbo 支持多元数据中心:用于应对容灾等情况导致某个元数据中心集群不可用,此时可以切换到另一个元数据中心集群,保证元数据中心能够正常提供有关服务元数据的管理能力。

拿注册中心举例,下面是一个多活场景的部署架构示意图:

5.png

03 目前存在的问题

  • 元数据中心的配置可以绑定某个注册中心,通过 registry 配置,但是配置存在问题,待修复
  • 之前提到的只会采用一个元数据中心进行元数据的 Pub、Sub:

6.png

作者简介:

华钟明:Apache Dubbo Committer,《深入理解RPC原理与实现》书籍作者。该书更深入地介绍了 Dubbo 的核心架构及三大中心的重要性,感兴趣的读者可以阅读书籍了解更多内容。也欢迎积极参与到 Dubbo 开源社区中,与作者一起共建 Dubbo。

原文链接
本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

历经7年双11实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?

简介: 本文将聚焦在 K8s 层的容器优先级和服务质量模型上,希望给业界提供一些可借鉴的思路。 作者:南异 引言 阿里巴巴在离线混部技术从 2014 年开始,经历了七年的双十一检验,内部已经大规模落地推广,每…

python 判断是否有余数_判断多个坐标是否在同一条直线上|Python练习系列[13]

练习内容:判断多个坐标是否在同一条直线上判断多个坐标是否在同一条直线上|Python练习系列[13]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.comprint(请输入几个点的横纵坐标,程序将会返回这几个点是否在同一条直线上) def coor_nums():#获得每个值的横纵坐标int_list…

阿里云 FaaS 架构设计

简介:本篇内容将从 2 个部分为读者介绍关于阿里云 FaaS 架构设计和神龙高密部署的 FaaS,希望可以让大家对阿里云 FaaS 有更深入的了解,并可以将 FaaS 应用到项目中,达到降本提效的目的。 一、基于 ECS 的 FaaS 在阿里云传统架构…

MLPerf纪录技术分享:优化卷积合并算法提升Resnet50推理性能

作者 | 王申领 供稿 | 浪潮 MLPerf是一套衡量机器学习系统性能的权威标准,将在标准目标下训练或推理机器学习模型的时间,作为一套系统性能的测量标准。MLPerf推理任务包括图像识别(ResNet50)、医学影像分割(3D-UNet&a…

nas存储如何做远程服务器数据备份_备份数据?7 个理由告诉你为什么要用 NAS,而不用移动硬盘...

您有遇过这样的情况吗?用 U 盘或移动硬盘备份文件,但在重要时刻却找不到 U 盘,甚至遇到移动硬盘毁损的状况。这个时候是不是忽然间好恨自己,拿什么拯救你——我亲爱的数据。转而使用 NAS 的原因。让我们来看看地球上最安全的存储是…

用手机写代码:基于 Serverless 的在线编程能力探索

简介:Serverless 架构的按量付费模式,可以在保证在线编程功能性能的前提下,进一步降低成本。本文将会以阿里云函数计算为例,通过 Serverless 架构实现一个 Python 语言的在线编程功能,并对该功能进一步的优化&#xff…

如何形成统一设计风格-实践篇

简介:在上一篇《业务团队如何统一架构设计风格?》中,探讨了一种业务架构的设计规范,以期达到这些目标:用标准约束技术细节;用技术工具而非文档推行标准;持续重构而非造新轮子;重视业…

计算机教师资格考试试题,全国教师资格考试信息技术练习题(二)

中公教师通过对全国教师资格考试考情的分析,总结出全国教师资格考试《信息技术学科知识与能力》算法与程序设计部分的知识点,并提供了该模块的相关考试试题,希望能帮助考生抓住考点、有针对性地复习。一、算法与程序设计模块考点分析通过对全…

A/B测试白皮书:领先企业营收增长是落后者5倍

Forrester调查显示:企业使用A/B测试的ROI达126% 4月26日,《火山引擎A/B测试总体经济影响白皮书》正式发布。这份白皮书由市场研究公司Forrester调研撰写,揭示了A/B测试对于企业营收增长、运营成本、生产力优化等方面的重要影响。基于对多家企…

limit mongodb 聚合_MongoDB 统计 group 操作用不了,试试 mapReduce 吧

问题回顾今天,同事小张 Q 我, 说自己辛苦花了一天的时间,基于 mongodb 数据库开发的待办统计功能一直报错!于是笔者花了近半小时了解小张的开发需求以及代码实现方式,大致明白问题出在对待办 collection 做统计时&…

基于 EMR OLAP 的开源实时数仓解决方案之 ClickHouse 事务实现

简介:阿里云 EMR OLAP 与 Flink 团队深度合作,支持了 Flink 到 ClickHouse 的 Exactly-Once写入来保证整个实时数仓数据的准确性。本文介绍了基于 EMR OLAP 的开源实时数仓解决方案。 作者简介:阿里云 EMR-OLAP 团队;主要负责开源…

【ClickHouse 技术系列】- 在 ClickHouse 中处理实时更新

简介:本文翻译自 Altinity 针对 ClickHouse 的系列技术文章。面向联机分析处理(OLAP)的开源分析引擎 ClickHouse,因其优良的查询性能,PB级的数据规模,简单的架构,被国内外公司广泛采用。本系列技…

从“数字化出海”到“出海数字化”,亚马逊云科技如何助力出海业务数字化转型

国内市场快速发展之外,全球也是广阔的市场。 据中国贸促会《中国企业对外投资现状及意向调查报告(2021年版)》显示,我国对外直接投资流量和存量稳居全球前三。在开拓海外市场的成绩里,2021全球《财富》世界500强榜单里…

amos调节变量怎么画_插画师该怎么收费?两个方法一看就懂。

任何自由插画师都逃不过要给客户报价这么一个令人头痛的环节,包括医学插画师。甲方往往希望看到一个菜单一样的价格表,把一切类型的插画安排的明明白白。而这样简单粗暴的算法,作为乙方又何尝不想要呢!纵观插画圈,萌新…

技术实践第二期|Flutter异常捕获

简介:应用性能稳定是良好用户体验中非常关键的一环,为了更好保障应用性能稳定,异常捕获在保证线上产品稳定中扮演着至关重要的角色。我们团队在推出了U-APM移动应用性能监控的产品后,帮助开发者定位并解决掉很多线上的疑难杂症。随…

请结合计算机硬件论述指令执行的过程,【计算机组成原理】计算机软硬件组成...

文章目录分层结构软件系统硬件系统I/O设备控制器存储器运算器先上张图,对计算机的软硬件组成有个大体的认识,接下来就是掰开揉碎这张大图ψ(`∇)ψ,本文绝大多数图片均为手绘分层结构其中操作系统的重要性不言而喻,也就…

F5:API 网关、流量网关发展各异,推出NGINX企阅版提供开源软件+企业级服务

作者 | 宋慧 出品 | CSDN 云计算 全球 80%互联网流量经过的 NGINX,全球有超过 4 亿个域名使用 NGINX 为载体,NGINX 无疑是成功的开源网关产品。 近日,F5 宣布 NGINX 在社区开源版本基础之上,推出NGINX企阅版(NGINX Op…

Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算

简介:如何以 Serverless 的方式运行 Spring Boot 应用? 作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 一系列的组件,开发者只需要很少的配置即可创建独立…

实现 消息提醒图标_用了5年苹果手机都不知道,原来小汽车图标是这个意思 ! ! !...

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。注图文来源网络,侵删 …

技术分享:从双11看实时数仓Hologres高可用设计与实践

简介:本文将会从阿里巴巴双11场景出发,分析实时数仓面临的高可用挑战以及针对性设计。 2021年阿里巴巴双11完美落下为帷幕,对消费者来说是一场购物盛宴,对背后的业务支撑技术人来说,更是一场年度大考。在这场大考中&a…