14.服务引用的设计原理

5666 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
DUBBO,JAVA, 中高级研发人员,项目经理,架构师
你将会学到
讲解SOA的分布式服务,以dubbo为案例分析,分布式服务基础入门与高级进阶,帮助同学们学习SOA的分布式服务架构。
课程简介

《深度解剖dubbo源码》(知识结构目录)

第一章:dubbo内核解剖

  1.dubbo的架构原理-探索

    a.dubbo 4大角色的关系图

  2.dubbo自己的SPI实现

    a.什么是JDK的SPi

    b.JDK的SPi有什么缺点

    c.为什么dubbo要新写一套SPi

  3.SPI机制的adpative原理

    a.dubbo如何巧妙的运用装饰模式、工厂模式、动态代理模式

  4.dubbo自己的IOC和AOP原理

    a.dubbo如何实现一个的IOC 反转控制模式

    b.dubbo如何简单实现一个AOP.

  5.dubbo的动态编译

    a.dubbo 为什么需要动态编译

    b.一个简单的javassist 的入门例子

  6.dubbo 如何和spring 优秀融合?

    a.一个简单的spring schema入门例子

    b.如何实现自定义的spring schema

第二章:dubbo服务发布原理解剖

  1.服务发布-原理探索

    a.什么是服务的发布

    b.微服务发布的5个动作

    c.什么是微服务的本地暴露?

    d.什么是微服务的远程暴露?

    e.本地暴露和远程暴露的区别?

  2.服务发布-netty的服务暴露

    a.一个netty的入门例子

    b.dubbo对netty的底层封装:boss、work线程池及心跳的封装

    c.dubbo对netty 设计了6层封装处理

  3.zookeeper的连接-创建-订阅

    a.一个zookeeper的入门例子

  4.dubbo如何连接zookeeper?

    a.dubbo 用zkClient进行连接封装

  5.dubbo如何创建zookeeper节点?

    a.zookeeper持久节点 和 临时节点的区别

    b.dubbo什么时候创建持久节点?

    c.dubbo什么时候创建临时点?

  6.dubbo如何订阅zookeeper信息?

    a.dubbo监听到订阅信息缓存在哪里?

  7.服务发布-整体架构设计图

    a.对微服务暴露的总结

第三章:dubbo服务引用原理解剖

  1.服务引用的设计原理

    a.什么是服务引用?

    b.spring的FactoryBean是用来干嘛的?dubbo怎么用它?

    c.服务引用的zookeeper的连接-创建-订阅

    d.创建服务端接口的代理InvocationHandler

  2.服务引用-整体架构设计图

   a.对微服务引用的总结

第四章:dubbo集群容错的设计解剖

  1.集群容错之架构设计解剖

    a.解剖directory、router、cluster、loadbalance之间的关联关系

    b.画集群容错的整体架构图

  2.集群容错之directory目录

    a.什么是集群目录服务Directory?

    b.静态目录和动态目录的区别?

    c.directory目录的原理就是对list对象的维护

    d.zookeeper的节点信息变更刷新了directory目录

  3.集群容错之router路由规则

    a.什么是router服务路由?

    b.用一个灰度发布的例子,讲解了dubbo如何做应用隔离?

    c.条件路由和脚步路由的区别

  4.集群容错之Cluster集群

    a.dubbo的集群有哪些算法?

    b.实验FailoverCluster失败转移算法

    c.实验FailfastCluster 快速失败算法

  5.集群容错之loadbalance负载均衡

    a.dubbo负载均衡如何配置?

    b.dubbo的负债均衡有哪些算法?

    c.RoundRobin算法的详细讲解

第五章:dubbo服务降级设计解剖

  1.dubbo如何实现SOA的服务降级?

    a.什么是服务开关?

    b.什么是服务降级?

    c.dubbo如何实现服务降级的容错?

    d.dubbo如何实现服务降级的屏蔽?

    e.MockClusterInvoker的详细讲解

第六章:dubbo网络通信架构解剖

  1.网络通信-consumer发送原理

    a.解剖《网络通信架构图》的consumer发送原理

  2.网络通信-provider的接收与发送原理

    a.解剖《网络通信架构图》的provider的接收发送原理

  3.网络通信-consumer的接收原理

    a.解剖netty的messageReceived

  4.如何把网络通信的IO异步变同步?

    a.基于netty NIO的 非阻塞 并行调用

    b.dubbo 的通信方式 有3类类型

    c.详细讲解:异步,有返回值

    d.详细讲解:异步,无返回值

    e.重点讲解:异步,变同步

    f.异步中,当前线程怎么让它“暂停,等结果回来后,再执行”?

    g.tcp通信方式的单工、半双工、全双工的区别?

    h.socket是一个全双工的通信方式,那么在多线程的情况下,如何知道那个返回结果对应原先那条线程的调用?

  5.dubbo的核心级概念-invoker

    a.什么是invoker?

    b.dubbo的invoker分为几类?

    c.本地执行类的Invoker

    d.远程通信执行类的Invoker

    e.多个远程通信执行类的Invoker聚合成集群版的Invoker

第七章:dubbo网络通信编码解码解剖

  1.网络通信--编码解码之consumer请求编码

    a.什么是编码?

    b.什么是解码?

    c.tcp 为什么会出现粘包、拆包的问题?

  2.网络通信--编码解码之 provider 请求解码

    a.上篇:dubbo神奇的16字节,破解了tcp的粘包、拆包

  3.网络通信--编码解码之provider响应结果编码

    a.中篇:dubbo神奇的16字节,破解了tcp的粘包、拆包

  4.网络通信--编码解码之consumer响应结果解码

    a.下篇:dubbo神奇的16字节,破解了tcp的粘包、拆包




                     本课程的思维导图(图片另存为或放大查看) 

  深度解剖dubbo源码-无qq号.jpg

  

架构.png


网络通信架构解剖.png

展开更多
发布
头像

{{ 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

公开笔记
保存
提问

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

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