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

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

展开
收起
1358896759097293 2021-03-17 14:09:54 642 分享 版权
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 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理