"我们先以一个 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 }
对比以上两种不同粒度的服务发现模式,从 “接口粒度” 升级到 “应用粒度” 后我 们可以总结出最大的区别是:注册中心数据量不再与接口数成正比,不论应用提供有多少接 口,注册中心只有一条实例数据。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。