Dubbo SPI之 AdaptiveExtension解读

1598 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
对于正在使用 Dubbo 框架,想要了解 Dubbo 的实现原理的同学,这是一门好的课程
你将会学到
通过学习本课程,你将:熟悉Dubbo的源码、学习Dubbo服务注册和服务发现的原理
  • Dubbo源码阅读能力
  • 基于Dubbo源码二次开发能力
  • 编写分布式TraceId功能
  • 服务注册和服务发现原理
  • DubboFilter原理
  • DubboSPI原理及应用
课程简介

Dubbo 是阿里出品的优秀的 RPC 框架,是我们了解微服务框架的窗口

Dubbo 在国内拥有众多粉丝,现在已经成为 Apache 的Ding级开源项目,学习 Dubbo 的原码


我将从以下几个方面来给大家剖析 Dubbo 的源码

1. Dubbo 设计简介

2. Dubbo SPI(Dubbo的基石)

  2.1 Dubbo SPI 实现原理之 ExtentionLoader

* ExtentionLoader 介绍

* Dubbo 扩展点机制的基本概念:扩展点、扩展点实例、扩展自适应实例、@SPI、@Adaptive、@Activate

* ExtentionLoader 之 AdaptiveExtention 源码分析

* ExtentionLoader 之 getExtention & DefaultExtention 源码分析

* ExtentionLoader 之 ActivateExtension 讲解与源码分析

* Dubbo SPI 之自动注入(IOC)讲解(详见 3.5 节的课程)

* Dubbo SPI 总结

  2.2 Dubbo SPI 应用

* SPI 举例分析及应用

3. Dubbo 服务注册&服务暴露

  3.1 Dubbo 服务注册&服务暴露过分析

  3.2 Dubbo 如何与 Spring 结合

  3.3 Dubbo 怎么将服务注册到注册中心

  3.4 Dubbo 怎么暴露服务并开启 tcp 端口监听

  3.5 Dubbo 服务注册总结&SPI注入分析

4. Dubbo Filter

  4.1 Dubbo Filter 的原理

  4.2 Dubbo ExceptionFilter 详解 

  4.3 Dubbo Filter 的应用

5. Dubbo 服务发现&服务引用

5.1 Dubbo 什么时候做 zk 节点订阅来发现服务

5.2 Dubbo 怎么产生服务引用对象

5.3 Dubbo 服务引用在何时开启与 Provider 端的 tcp 连接

6. Dubbo 服务调用

  5.1 Dubbo 服务调用过程分析

* 过程一:Consumer 发送 Request 请求

* 过程二:Provider 接收请求并处理,返回 Response

* 过程三:Consumer 接收 Response

7. Dubbo attachment 分析及应用

  7.1 attachment 的传递

* Consumer 写 attachment

* Provider 读 attachment

  7.2 attachment 的应用之分布式日志追踪

* traceId 的原理及代码实现 

8. Dubbo 泛化调用及应用

9. Dubbo 重试机制分析

* Dubbo 什么时候做重试

* Dubbo 默认重试次数

* Dubbo 重试策略分析


展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交