从0开始学微服务
胡忠想
微博技术专家
立即订阅
16289 人已学习
课程目录
已完结 42 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 微服务,从放弃到入门
免费
模块一 入门微服务 (10讲)
01 | 到底什么是微服务?
02 | 从单体应用走向服务化
03 | 初探微服务架构
04 | 如何发布和引用服务?
05 | 如何注册和发现服务?
06 | 如何实现RPC远程服务调用?
07 | 如何监控微服务调用?
08 | 如何追踪微服务调用?
09 | 微服务治理的手段有哪些?
10 | Dubbo框架里的微服务组件
模块二 落地微服务 (14讲)
11 | 服务发布和引用的实践
12 | 如何将注册中心落地?
13 | 开源服务注册中心如何选型?
14 | 开源RPC框架如何选型?
15 | 如何搭建一个可靠的监控系统?
16 | 如何搭建一套适合你的服务追踪系统?
17 | 如何识别服务节点是否存活?
18 | 如何使用负载均衡算法?
19 | 如何使用服务路由?
20 | 服务端出现故障时该如何应对?
21 | 服务调用失败时有哪些处理手段?
22 | 如何管理服务配置?
23 | 如何搭建微服务治理平台?
24 | 微服务架构该如何落地?
模块三 进阶微服务 (8讲)
25 | 微服务为什么要容器化?
26 | 微服务容器化运维:镜像仓库和资源调度
27 | 微服务容器化运维:容器调度和服务编排
28 | 微服务容器化运维:微博容器运维平台DCP
29 | 微服务如何实现DevOps?
30 | 如何做好微服务容量规划?
31 | 微服务多机房部署实践
32 | 微服务混合云部署实践
模块四 展望微服务 (4讲)
33 | 下一代微服务架构Service Mesh
34 | Istio:Service Mesh的代表产品
35 | 微博Service Mesh实践之路(上)
36 | 微博Service Mesh实践之路(下)
阿忠伯的特别放送 (4讲)
阿忠伯的特别放送 | 答疑解惑01
阿忠伯的特别放送 | 答疑解惑02
微博技术解密(上) | 微博信息流是如何实现的?
微博技术解密(下)| 微博存储的那些事儿
结束语 (1讲)
结束语 | 微服务,从入门到精通
从0开始学微服务
登录|注册

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

胡忠想 2018-09-13
经过前面几期的讲解,你应该已经对微服务的架构有了初步的了解。简单回顾一下,微服务的架构主要包括服务描述、服务发现、服务调用、服务监控、服务追踪以及服务治理这几个基本组件。
那么每个基本组件从架构和代码设计上该如何实现?组件之间又是如何串联来实现一个完整的微服务架构呢?今天我就以开源微服务框架 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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学微服务》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(22)

  • 庞小勇
    php开发者,听着一脸蒙逼
    2018-09-18
    1
    27
  • echo_陈
    撸了半年的dubbo源码……
    胡老师这篇很不错,已分享给同事

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

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

    作者回复: dubbo,哈哈

    2018-09-13
    4
  • 波波安
    老师对怎么去读源码,有什么好的建议和方式吗,每次都不知道从哪看起😬
    2018-10-13
    3
  • Home
    后期会有springcloud的介绍嘛?

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

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

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

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

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

    2018-09-13
    2
  • godtrue
    牛逼的Dubbo
    牛逼的阿里
    牛逼的开源
    感谢😊
    2019-05-23
    1
  • Saily
    neety是个好框架啊,thrift和protobuf也是

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

    2018-09-13
    1
  • Billylin
    胡老师,您好,如果后端服务使用dubbo框架的话,有什么组件可以充当网关这个角色呢?
    2018-09-13
    1
  • Mr.Right
    python开发者,听着一脸蒙逼
    2019-10-25
  • lw
    学了这课,有信心去看dubbo源码了。
    2019-09-12
  • holdno
    rpc应该算是长连接吧?如果有多个服务端节点,每次都去通过负载均衡选择,那是在初始化的时候客户端需要跟所有服务端建立连接?求老师赐教
    2019-09-05
  • Tony
    代码侵入高,相对于spring cloud
    好处是可扩展性强,可定制化,性能优于http协议请求,虽然没玩过dubbo- ̗̀(๑ᵔ⌔ᵔ๑)
    2019-02-22
  • Rainbow
    我们公司用的就是这一套,开发同学可以小团队做不同的模块,作为测试同学每天 xshell 都要开 n 多个窗口跟踪日志😅,还有就是某个功能出问题以后就要去检查环境,而且有好多个模块,好多个节点,好多个实例,也挺耗费时间的。课程很棒!感谢胡老师分享,看到跟微服务相关特地来学习的,谢谢分享!
    2018-12-16
  • 小猪
    rancher可以用来做微服务框架吗?可以运行微服务系统吗?

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

    2018-11-30
  • 小寞子。(≥3≤)
    对于一个完全第一次听到dubbo这个词的人。我竟然听懂了。。。 理论上没毛病。。通过一系列的层集 来解决和自动化微服务的一系列问题和管理。。。只是看起来会很缓慢的样子。。。😂😂😂😂😂
    2018-11-20
  • 小白
    在微服务架构中,同一个服务是不是有可能既充当服务提供者的角色又充当服务消费者的角色呢?

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

    2018-11-03
  • ctsPrsvrnc
    胡老师,一直有个疑问,spring cloud出了很久了,dubbo曾经断更过,为什么感觉国内依然还是选择dubbo多?仅仅是因为不依赖spring boot吗?
    2018-09-27
  • 二师哥
    就算有有了前面学习的基础, 我依旧无法做到立刻理解. 已经看了三、四遍。
    打算看下文档,自己实现以下,然后边学习,边看文档和老胡的文章。

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

    2018-09-13
收起评论
22
返回
顶部