带你读《Apache Dubbo微服务开发从入门到精通》——七、元数据中心(1)

简介: 带你读《Apache Dubbo微服务开发从入门到精通》——七、元数据中心(1)


七、元数据中心

 

1. 元数据中心概览

 

元数据中心为Dubbo中的两类元数据提供了存取能力:

 

地址发现元数据。地址发现详情请参考【服务发现】一章

接口-应用映射关系

接口配置数据

 

服务运维元数据

接口定义描述数据

消费者订阅关系数据

 

关于如何配置开启元数据中心请参考具体实现文档。

 

1) 地址发现元数据

 

Dubbo3中引入了应用级服务发现机制,用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代2.x是时代的接口级服务发现。

 

同时为了保持Dubbo面向服务/接口的易用性、服务治理的灵活性,Dubbo围绕应用级服务发现构建了一套元数据机制,即接口-应用映射关系与接口配置元数据。

 

a) 接口-应用映射关系

 

Dubbo一直以来都能做到精确的地址发现,即只订阅Consumer声明要关心的服务及相关的地址列表,相比于拉取/订阅全量地址列表,这样做有很好的性能优势。

 

在应用级服务发现模型中,想做到精确地址订阅并不容易,因为Dubbo Consumer只声明了要消费的接口列表,Consumer需要能够将接口转换为Provider应用名才能进行精准服务订阅,

 

为此,Dubbo需要在元数据中心维护这一份接口名->应用名的对应关系,Dubbo3中通过provider启动的时主动向元数据中心上报实现。

 

接口service name-应用Provider application name的映射关系可以是一对多的,即一个service name可能会对应多个不同的application name。

 

以zookeeper为例,映射关系保存在以下位置

image.png

节点路径是/dubbo/mapping/{interface name}

多个应用名通过英文逗号隔开

 

b) 接口配置元数据

 

接口级配置元数据`是作为地址发现的补充,相比于Spring Cloud等地址发现模型只能同步IP、port信息,Dubbo的服务发现机制可以同步接口列表、接口定义、接口级参数配置等信息。

 

这部分内容根据当前应用的自身信息、以及接口信息计算而来,并且从性能角度出发,还根据元数据生成revision,以实现不同机器实例间的元数据聚合。

 

以Zookeeper为例,接口配置元数据保存在以下位置,如果多个实例生成的revision相同,则最终会共享同一份元数据配置:


/dubbo/metadata/{application name}/{revision}

image.png


{
    "app":"demo-provider",
    "revision":"da3be833baa2088c5f6776fb7ab1a436",
    "services":{
        "org.apache.dubbo.demo.DemoService:dubbo":{
            "name":"org.apache.dubbo.demo.DemoService",
            "protocol":"dubbo",
            "path":"org.apache.dubbo.demo.DemoService",
            "params":{
                "side":"provider",
                "release":"",
                "methods":"sayHello,sayHelloAsync",
                "deprecated":"false",
                "dubbo":"2.0.2",
                "pid":"38298",
                "interface":"org.apache.dubbo.demo.DemoService",
                "service-name-mapping":"true",
                "timeout":"3000",
                "generic":"false",
                "metadata-type":"remote",
                "delay":"5000",
                "application":"demo-provider",
                "dynamic":"true",
                "REGISTRY_CLUSTER":"registry1",
                "anyhost":"true",
                "timestamp":"1626887121829"
            }
        },
        "org.apache.dubbo.demo.RestDemoService:1.0.0:rest":{
            "name":"org.apache.dubbo.demo.RestDemoService",
            "version":"1.0.0",
            "protocol":"rest",
            "path":"org.apache.dubbo.demo.RestDemoService",
            "params":{
                "side":"provider",
                "release":"",
                "methods":"getRemoteApplicationName,sayHello,hello,error",
                "deprecated":"false",
                "dubbo":"2.0.2",
                "pid":"38298",
                "interface":"org.apache.dubbo.demo.RestDemoService",
                "service-name-mapping":"true",
                "version":"1.0.0",
                "timeout":"5000",
                "generic":"false",
                "revision":"1.0.0",
                "metadata-type":"remote",
                "delay":"5000",
                "application":"demo-provider",
                "dynamic":"true",
                "REGISTRY_CLUSTER":"registry1",
                "anyhost":"true",
                "timestamp":"1626887120943"
            }
        }
    }
}




《Apache Dubbo微服务开发从入门到精通》——服务治理与生态——七、元数据中心(2):https://developer.aliyun.com/article/1223684



 



 

 

 

 



相关文章
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
运维 监控 安全
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
283 2
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
399 101
|
负载均衡 监控 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
184 39
|
9月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
166 0
|
存储 监控 负载均衡
构建高效微服务架构:服务治理与监控的实践
构建高效微服务架构:服务治理与监控的实践
|
负载均衡 Java 云计算
微服务架构下的服务治理与容错机制
微服务架构下的服务治理与容错机制
233 20
|
负载均衡 算法 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
|
监控 安全 测试技术
深入理解并实践微服务架构中的服务治理
深入理解并实践微服务架构中的服务治理
574 1

推荐镜像

更多