10 | Dubbo框架里的微服务组件
胡忠想
该思维导图由 AI 生成,仅供参考
经过前面几期的讲解,你应该已经对微服务的架构有了初步的了解。简单回顾一下,微服务的架构主要包括服务描述、服务发现、服务调用、服务监控、服务追踪以及服务治理这几个基本组件。
那么每个基本组件从架构和代码设计上该如何实现?组件之间又是如何串联来实现一个完整的微服务架构呢?今天我就以开源微服务框架 Dubbo 为例来给你具体讲解这些组件。
服务发布与引用
专栏前面我讲过服务发布与引用的三种常用方式:RESTful API、XML 配置以及 IDL 文件,其中 Dubbo 框架主要是使用 XML 配置方式,接下来我通过具体实例,来给你讲讲 Dubbo 框架服务发布与引用是如何实现的。
首先来看服务发布的过程,下面这段代码是服务提供者的 XML 配置。
其中“dubbo:service”开头的配置项声明了服务提供者要发布的接口,“dubbo:protocol”开头的配置项声明了服务提供者要发布的接口的协议以及端口号。
Dubbo 会把以上配置项解析成下面的 URL 格式:
然后基于扩展点自适应机制,通过 URL 的“dubbo://”协议头识别,就会调用 DubboProtocol 的 export() 方法,打开服务端口 20880,就可以把服务 demoService 暴露到 20880 端口了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
Dubbo框架是一个开源微服务框架,提供了完整的微服务架构实现,涵盖了微服务架构的各个基本组件,为构建分布式系统提供了强大的支持。该框架包括服务发布与引用、服务注册与发现、服务调用、服务监控和服务治理等基本组件。在服务调用的流程中,Dubbo框架通过Proxy服务代理层、Registry注册中心层、Protocol远程调用层、Filter调用链层和Cluster层等组件实现了完整的服务调用过程。对于学习微服务架构的读者来说,最好的方式是去实际搭建一个微服务的框架,甚至去从代码入手做一些二次开发。 Dubbo框架的实现细节值得进一步探讨和讨论。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》,新⼈⾸单¥59
《从 0 开始学微服务》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(25)
- 最新
- 精选
- echo_陈撸了半年的dubbo源码…… 胡老师这篇很不错,已分享给同事
作者回复: 希望能帮你们入门了解
2018-09-1317 - eason2017这篇文章好哇,学习dunno 必备
作者回复: dubbo,哈哈
2018-09-137 - Home后期会有springcloud的介绍嘛?
作者回复: 选型对比就会提到,但不会详细讲spring cloud
2018-09-135 - Sam_Deep_Thinking没玩过,不过看起来doubo很强大哈。学习了。下篇是讲spring cloud吗?
作者回复: 这一篇是原理篇的最后一节,spring cloud在后面选型中会提到
2018-09-133 - fldhmily63319老师能评价一下Dubbo, Spring Cloud甚至是ZooKeeper的区别,优劣势吗?
作者回复: zookeeper是配置中心,dubbo和spring cloud是服务框架,后面对比选型会细讲
2018-09-133 - 小白在微服务架构中,同一个服务是不是有可能既充当服务提供者的角色又充当服务消费者的角色呢?
作者回复: 是的,这种情况很正常
2018-11-031 - 张龙大骗子neety是个好框架啊,thrift和protobuf也是
作者回复: 是的,netty适合Java,thrift和protobuf适合跨语言
2018-09-131 - 奕现在微服务框架,大部分都是java语言的,其他语言有推荐吗?比如nodejs或者go什么的
作者回复: grpc
2018-09-1331 - 小猪rancher可以用来做微服务框架吗?可以运行微服务系统吗?
作者回复: 不是很了解,看了下github,是个容器管理平台,可以运行微服务系统。
2018-11-30 - 二师哥就算有有了前面学习的基础, 我依旧无法做到立刻理解. 已经看了三、四遍。 打算看下文档,自己实现以下,然后边学习,边看文档和老胡的文章。
作者回复: 可以下载源码部署
2018-09-13
收起评论