从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

10 | Dubbo框架里的微服务组件

学习微服务架构的最佳方式
服务端接收请求后的处理过程
客户端发起调用的过程
服务容错
服务路由
负载均衡
节点管理
数据展示
数据处理
数据传输
数据采集
数据序列化和反序列化
数据传输协议
服务端处理请求
客户端和服务端建立网络连接
服务消费者发现服务的过程
服务提供者注册服务的过程
服务消费者的XML配置
服务提供者的XML配置
XML配置方式
思考题
总结
一次服务调用的流程
服务治理
服务监控
服务调用
服务注册与发现
服务发布与引用
Dubbo框架有哪些微服务组件?

该思维导图由 AI 生成,仅供参考

经过前面几期的讲解,你应该已经对微服务的架构有了初步的了解。简单回顾一下,微服务的架构主要包括服务描述、服务发现、服务调用、服务监控、服务追踪以及服务治理这几个基本组件。
那么每个基本组件从架构和代码设计上该如何实现?组件之间又是如何串联来实现一个完整的微服务架构呢?今天我就以开源微服务框架 Dubbo 为例来给你具体讲解这些组件。

服务发布与引用

专栏前面我讲过服务发布与引用的三种常用方式:RESTful API、XML 配置以及 IDL 文件,其中 Dubbo 框架主要是使用 XML 配置方式,接下来我通过具体实例,来给你讲讲 Dubbo 框架服务发布与引用是如何实现的。
首先来看服务发布的过程,下面这段代码是服务提供者的 XML 配置。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="hello-world-app" />
<!-- 使用multicast广播注册中心暴露服务地址 -->
<dubbo:registry address="multicast://224.5.6.7:1234" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" />
<!-- 和本地bean一样实现服务 -->
<bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" />
</beans>
其中“dubbo:service”开头的配置项声明了服务提供者要发布的接口,“dubbo:protocol”开头的配置项声明了服务提供者要发布的接口的协议以及端口号。
Dubbo 会把以上配置项解析成下面的 URL 格式:
dubbo://host-ip:20880/com.alibaba.dubbo.demo.DemoService
然后基于扩展点自适应机制,通过 URL 的“dubbo://”协议头识别,就会调用 DubboProtocol 的 export() 方法,打开服务端口 20880,就可以把服务 demoService 暴露到 20880 端口了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Dubbo框架是一个开源微服务框架,提供了完整的微服务架构实现,涵盖了微服务架构的各个基本组件,为构建分布式系统提供了强大的支持。该框架包括服务发布与引用、服务注册与发现、服务调用、服务监控和服务治理等基本组件。在服务调用的流程中,Dubbo框架通过Proxy服务代理层、Registry注册中心层、Protocol远程调用层、Filter调用链层和Cluster层等组件实现了完整的服务调用过程。对于学习微服务架构的读者来说,最好的方式是去实际搭建一个微服务的框架,甚至去从代码入手做一些二次开发。 Dubbo框架的实现细节值得进一步探讨和讨论。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(25)

  • 最新
  • 精选
  • echo_陈
    撸了半年的dubbo源码…… 胡老师这篇很不错,已分享给同事

    作者回复: 希望能帮你们入门了解

    2018-09-13
    17
  • eason2017
    这篇文章好哇,学习dunno 必备

    作者回复: dubbo,哈哈

    2018-09-13
    7
  • Home
    后期会有springcloud的介绍嘛?

    作者回复: 选型对比就会提到,但不会详细讲spring cloud

    2018-09-13
    5
  • Sam_Deep_Thinking
    没玩过,不过看起来doubo很强大哈。学习了。下篇是讲spring cloud吗?

    作者回复: 这一篇是原理篇的最后一节,spring cloud在后面选型中会提到

    2018-09-13
    3
  • fldhmily63319
    老师能评价一下Dubbo, Spring Cloud甚至是ZooKeeper的区别,优劣势吗?

    作者回复: zookeeper是配置中心,dubbo和spring cloud是服务框架,后面对比选型会细讲

    2018-09-13
    3
  • 小白
    在微服务架构中,同一个服务是不是有可能既充当服务提供者的角色又充当服务消费者的角色呢?

    作者回复: 是的,这种情况很正常

    2018-11-03
    1
  • 张龙大骗子
    neety是个好框架啊,thrift和protobuf也是

    作者回复: 是的,netty适合Java,thrift和protobuf适合跨语言

    2018-09-13
    1
  • 现在微服务框架,大部分都是java语言的,其他语言有推荐吗?比如nodejs或者go什么的

    作者回复: grpc

    2018-09-13
    3
    1
  • 小猪
    rancher可以用来做微服务框架吗?可以运行微服务系统吗?

    作者回复: 不是很了解,看了下github,是个容器管理平台,可以运行微服务系统。

    2018-11-30
  • 二师哥
    就算有有了前面学习的基础, 我依旧无法做到立刻理解. 已经看了三、四遍。 打算看下文档,自己实现以下,然后边学习,边看文档和老胡的文章。

    作者回复: 可以下载源码部署

    2018-09-13
收起评论
显示
设置
留言
25
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部