----------------------------课程介绍---------------------------------------
本课程主要是围绕一个小电商系统为案例,帮小伙伴讲解如何基于dubbo搭建分布式服务集群框架。
本课程的看点:
1.为什么要学习dubbo?
2.MVC、RPC、SOA的架构区别,及如何演进?
3.dubbo和spring cloud、ICE的区别?
4.日常开发必须熟练掌握哪些常用的标签?
5.为什么MVC要升级为SOA架构?
6.为什么zookeeper集群的部署机器必须是奇数台?
7.ZooKeeper集群如何快速安装?
8.dubbo集群负载均衡如何快速搭建?
9.dubbo如何管理服务,及服务管理如何安装?
----------------------------课件资料---------------------------------------
技术探讨,请加QQ.群: 257206349(群名:《深度解剖dubbo源码》),免费获取dubbo技术资料哦----------------------本课程的升级版本---------------------------------
《深度解剖dubbo源码》地址:https://ke.qq.com/course/230238《深度解剖dubbo源码》知识点目录结构
第一章:dubbo内核解剖
1.dubbo的架构原理-探索
dubbo 4大角色的关系图
2.dubbo自己的SPI实现
什么是JDK的SPi ?
JDK的SPi有什么缺点 ?
为什么dubbo要新写一套SPi ?
3.SPI机制的adpative原理
dubbo如何巧妙的运用装饰模式、工厂模式、动态代理模式 ?
4.dubbo自己的IOC和AOP原理
dubbo如何实现一个的IOC 反转控制模式 ?
dubbo如何简单实现一个AOP?
5.dubbo的动态编译
dubbo 为什么需要动态编译 ?
一个简单的javassist 的入门例子
dubbo对javassist的封装
6.dubbo 如何和spring 完美融合?
一个简单的spring schema入门例子
dubbo如何实现自定义的spring schema ?
第二章:dubbo服务发布原理解剖
1.服务发布-原理探索
什么是服务的发布 ?
微服务发布的5个动作
什么是微服务的本地暴露?
什么是微服务的远程暴露?
本地暴露和远程暴露的区别?
2.服务发布-netty的服务暴露
一个netty的入门例子
dubbo对netty的底层封装:boss、work线程池及心跳的封装
dubbo对netty 设计了6层封装处理
3.zookeeper的连接-创建-订阅
一个zookeeper的入门例子
4.dubbo如何连接zookeeper?
dubbo 用zkClient进行连接封装
5.dubbo如何创建zookeeper节点?
zookeeper持久节点 和 临时节点的区别 ?
dubbo什么时候创建持久节点?
dubbo什么时候创建临时点?
6.dubbo如何订阅zookeeper信息?
dubbo监听到订阅信息缓存在哪里?
7.服务发布-整体架构设计图
对微服务暴露的总结
第三章:dubbo服务引用原理解剖
1.服务引用的设计原理
什么是服务引用?
spring的FactoryBean是用来干嘛的?dubbo怎么用它?
服务引用的zookeeper的连接-创建-订阅
创建服务端接口的代理InvocationHandler
2.服务引用-整体架构设计图
对微服务引用的总结
第四章:dubbo集群容错的设计解剖
1.集群容错之架构设计解剖
解剖directory、router、cluster、loadbalance之间的关联关系
画集群容错的整体架构图
2.集群容错之directory目录
什么是集群目录服务Directory?
静态目录和动态目录的区别?
directory目录的原理就是对list对象的维护
zookeeper的节点信息变更刷新了directory目录
3.集群容错之router路由规则
什么是router服务路由 ?
用一个灰度发布的例子,讲解了dubbo如何做应用隔离?
条件路由和脚步路由的区别 ?
4.集群容错之Cluster集群
dubbo的集群有哪些算法?
实验FailoverCluster失败转移算法
实验FailfastCluster 快速失败算法
5.集群容错之loadbalance负载均衡
dubbo负载均衡如何配置?
dubbo的负债均衡有哪些算法?
RoundRobin算法的详细讲解
第五章:dubbo服务降级设计解剖
1.dubbo如何实现SOA的服务降级?
什么是服务开关?
什么是服务降级?
dubbo如何实现服务降级的容错?
dubbo如何实现服务降级的屏蔽?
MockClusterInvoker的详细讲解
第六章:dubbo网络通信架构解剖
1.网络通信-consumer发送原理
解剖《网络通信架构图》的consumer发送原理
2.网络通信-provider的接收与发送原理
解剖《网络通信架构图》的provider的接收发送原理
3.网络通信-consumer的接收原理
解剖netty的messageReceived
4.如何把网络通信的IO异步变同步?
基于netty NIO的 非阻塞 并行调用
dubbo 的通信方式 有3类类型
详细讲解:异步,有返回值
详细讲解:异步,无返回值
重点讲解:异步,变同步
异步中,当前线程怎么让它“暂停,等结果回来后,再执行”?
tcp通信方式的单工、半双工、全双工的区别?
socket是一个全双工的通信方式,那么在多线程的情况下,如何知道那个返回结果对应原先那条线程的调用?
5.dubbo的核心级概念-invoker
什么是invoker?
dubbo的invoker分为几类?
本地执行类的Invoker
远程通信执行类的Invoker
多个远程通信执行类的Invoker聚合成集群版的Invoker
第七章:dubbo网络通信编码解码解剖
1.网络通信--编码解码之consumer请求编码
什么是编码?
什么是解码?
tcp 为什么会出现粘包、拆包的问题?
2.网络通信--编码解码之 provider 请求解码
上篇:dubbo神奇的16字节,破解了tcp的粘包、拆包
3.网络通信--编码解码之provider响应结果编码
中篇:dubbo神奇的16字节,破解了tcp的粘包、拆包
4.网络通信--编码解码之consumer响应结果解码
下篇:dubbo神奇的16字节,破解了tcp的粘包、拆包