了解Dubbo的部署架构可以帮助我们更深入的理解Dubbo,先来看一张官网的图片

这张图应该是非常经典的一张图了,从dubbo问世以来一直都没有怎么变过,从上图中可以清晰的看到dubbo作为一个微服务框架,注册中心是至关重要的,主要负责协调 Consumer 与 Provider 之间的地址注册与发现。除此之外dubbo还有配置中心和元数据中心。

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

Dubbo微服务组件与各个中心的交互过程


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

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

注册中心

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


目前dubbo支持多种注册中心供用户选择:zookeeper、nacos等,当然也支持k8s作为注册中心(结合云原生)。

元数据中心

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

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

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


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

配置中心

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

总结

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

聊聊Dubbo的注册中心、配置中心以及元数据中心相关推荐

  1. 【Dubbo】Dubbo2.7新功能 --配置中心、元数据中心

    1.配置中心 配置中心提供了动态配置功能,是 Dubbo2.7 版本引入的一个新的功能. 简单来说,就是把 dubbo.properties 中的属性进行集中式存储,存储在其他的服务器上. 目前 Du ...

  2. Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流

    通过Spring Cloud Alibaba相关组件nacos+sentinel+dubbo实行服务注册.配置中心.熔断限流等功能 1.本机安装nacos和sentinel-dashboard服务端 ...

  3. springboot整合dubbo之多注册中心配置(服务提供者和消费者均配置 2.7.0版本)

    一开始之前怎么配置都不能运行,会绕过远程连接的地址直接去链接127.0.0.1:2181这个地址,一直报错.再换回去单注册中心还是会一直多连一个莫须有的注册中心一直一直启动不开.类似于下面这样 ,因为 ...

  4. Dubbo多注册中心配置

    1.Dubbo支持的注册中心 Zookeeper(官方推荐) 优点:支持分布式.很多周边产品. 缺点:受限于Zookeeper软件的稳定性.Zookeeper专门分布式辅助软件,稳定较优 Multic ...

  5. python consul配置中心_微服务注册发现配置中心-consul

    Consul详解 近期在微服务业务中用的注册中心,在此简单记录下以备后用. 一 概述 1.1 概念 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.Con ...

  6. Nacos服务注册和配置中心

    简介 Nacos 前四个字母分别为Naming和Configuration的前两个字母,最后的s为Service. Nacos = Eureka+Config +Bus,就是注册中心 + 配置中心的组 ...

  7. 亲!你的专属Dubbo启动注册中心,请注意查收!

    现在来说一下dubbo注册中心的大致结构,请看下图: Java学习笔记开源框架--dubbo启动之注册中心(Registry) 服务注册 对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务 ...

  8. Dubbo学习-注册中心

    Dubbo支持多种注册中心,比如Nacos,Zookeeper, Multicast,Redis ,Simple等注册中心.主流的方式应该是Nacos和Zookeeper.最近项目中使用了Nacos注 ...

  9. SpringCloud微服务(四)——Nacos服务注册和配置中心

    SpringCloud Alibaba Nacos服务注册和配置中心 Spring Cloud Netflix Projects Entering Mainterance Mode SpringClo ...

  10. SpringCloud Alibaba实战--第二篇:NacosⅠ服务注册和配置中心

    系列文章目录 微服务新王SpringCloudAlibaba 文章目录 系列文章目录 前言 一.Nacos是什么?能干啥? 二.Nacos下载及安装 1. 下载 2. 安装并运行 3. 对比Eurek ...

最新文章

  1. Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
  2. CentOS安装GlassFish4.0 配置JDBC连接MySQL
  3. Python 爬虫使用固定代理IP
  4. [云炬创业管理笔记]第五章打磨最有效的商业模式测试4
  5. 前端学习(2694):重读vue电商网站15之阻止页签tabs切换
  6. error:cv_bridge---opencv和ros连接起来的桥
  7. python接口自动化3-自动发帖(session)
  8. PYTHON开发毕业设计做什么好鸭?
  9. 高性能电工电子电拖及自动化技术实训与考核装置
  10. 基于Conv-LSTM网络的地铁乘客拥堵延误预测深度学习模型
  11. 通过手机控制蓝牙模块的实例
  12. 台式计算机网线插哪里,电脑主机网线插哪里?
  13. 撸一撸简单的操作系统知识
  14. 源程序清单-汽车动力性计算图表软件V1.0
  15. 文化与科技的交织,华为P50 Pro与一曲长城谣
  16. Python小记——创建空集
  17. 特斯拉“踩坑”分时Linux?丰田/Mobileye选择“迎难而上”
  18. 算法题/青蛙跳台阶问题
  19. 【SVM分类】基于布谷鸟算法优化实现SVM数据分类matlab源码
  20. 质量基础设施一站式服务平台建设,NQI线上系统开发方案

热门文章

  1. java 汉字 拼音排序_Java字符串按照汉语拼音排序
  2. iEx.ec——云计算业务的区块链革命
  3. 文本分类概述(nlp)
  4. Android音量系统分析
  5. Java 对 Excel 修改
  6. Linux压缩与解压缩文件或文件夹命令
  7. nc数据处理,掩膜,经纬度定位格点
  8. linux 第三方nali显示IP地址归属地
  9. 像京东等大厂为什么不通过减薪来代替裁员,降低成本?
  10. css旋转立方体教程,如何通过CSS3实现旋转立方体