开发者社区 > 云原生 > 正文

Dubbo 地址发现机制是怎样的?

Dubbo 地址发现机制是怎样的?

展开
收起
1358896759097293 2021-03-17 14:09:54 616 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    "我们先以一个 DEMO 应用为例,来快速的看一下 Dubbo “接口粒度”服务发现与 “应用粒度”服务发现体现出来的区别。这里我们重点关注 Provider 实例是如何向注册 中心注册的,并且,为了体现注册中心数据量变化,我们观察的是两个 Provider 实例的 场景。应用 DEMO 提供的服务列表如下:

    <dubbo:service interface=""org.apache.dubbo.samples.basic.api.DemoService"" ref=""demoService""/> <dubbo:service interface=""org.apache.dubbo.samples.basic.api.GreetingService"" ref=""greetingService""/>
    
    

    我们示例注册中心实现采用的是 Zookeeper ,启动 192.168.0.103 和 192.168.0. 104 两个实例后,以下是两种模式下注册中心的实际数据。

    1. “接口粒度” 服务发现 192.168.0.103 实例注册的数据: 
    dubbo://192.168.0.103:20880/org.apache.dubbo.samples.basic.api.DemoService?anyhos t=true&application=demo-provider&default=true&deprecated=false&dubbo=2.0.2&dynamic= true&generic=false&interface=org.apache.dubbo.samples.basic.api.DemoService&methods= testVoid,sayHello&pid=995&release=2.7.7&side=provider×tamp=1596988171266 dubbo://192.168.0.103:20880/org.apache.dubbo.samples.basic.api.GreetingService?anyh ost=true&application=demo-provider&default=true&deprecated=false&dubbo=2.0.2&dynami c=true&generic=false&interface=org.apache.dubbo.samples.basic.api.GreetingService&met hods=greeting&pid=995&release=2.7.7&side=provider×tamp=1596988170816 192.168.0.104 实例注册的数据: dubbo://192.168.0.104:20880/org.apache.dubbo.samples.basic.api.DemoService?anyhos t=true&application=demo-provider&default=true&deprecated=false&dubbo=2.0.2&dynamic= true&generic=false&interface=org.apache.dubbo.samples.basic.api.DemoService&methods= testVoid,sayHello&pid=995&release=2.7.7&side=provider×tamp=1596988171266 dubbo://192.168.0.104:20880/org.apache.dubbo.samples.basic.api.GreetingService?anyh ost=true&application=demo-provider&default=true&deprecated=false&dubbo=2.0.2&dynami c=true&generic=false&interface=org.apache.dubbo.samples.basic.api.GreetingService&met hods=greeting&pid=995&release=2.7.7&side=provider×tamp=1596988170816 2. “应用粒度” 服务发现 192.168.0.103 实例数据: { ""name"": ""demo-provider"", ""id"": ""192.168.0.103:20880"", ""address"": ""192.168.0.103"", ""port"": 20880, ""metadata"": {
    ""dubbo.endpoints"": ""[{\""port\"":20880,\""protocol\"":\""dubbo\""}]"", ""dubbo.metadata.storage-type"": ""local"", ""dubbo.revision"": ""6785535733750099598"" }, ""time"": 1583461240877 }192.168.0.104 实例数据: {""name"": ""demo-provider"", ""id"": ""192.168.0.104:20880"", ""address"": ""192.168.0.104"", ""port"": 20880, ""metadata"": { ""dubbo.endpoints"": ""[{""port"":20880,""protocol"":""dubbo""}]"", ""dubbo.metadata.storage-type"": ""local"", ""dubbo.revision"": ""7829635812370099387"" },""time"": 1583461240947 }
    

    对比以上两种不同粒度的服务发现模式,从 “接口粒度” 升级到 “应用粒度” 后我 们可以总结出最大的区别是:注册中心数据量不再与接口数成正比,不论应用提供有多少接 口,注册中心只有一条实例数据。

    2021-03-18 23:14:19
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载