Skip to content

Commit af2414f

Browse files
author
文亮
committed
add doc
1 parent da8cbb1 commit af2414f

File tree

6 files changed

+160
-0
lines changed

6 files changed

+160
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@
186186
- [10、咱们来聊点深入的,说说Dubbo底层的网络通信机制原理!](/docs/distributed-system/dubbo-rock-bottom.md)
187187
- [11、Dubbo框架从架构设计角度,是怎么保证极高的可扩展性的?](/docs/distributed-system/dubbo-augmentability.md)
188188
- [12、作业:自己独立画出Dubbo的底层架构原理图](/docs/distributed-system/dubbo-independent-framework.md)
189+
- [13、如果让你设计一个RPC框架,网络通信、代理机制、负载均衡等该如何设](/docs/distributed-system/rpc-design.md)
190+
- [14、平时除了使用外,有研究过Spring Cloud的底层架构原理么?](/docs/distributed-system/springCloud-study-theory.md)
191+
- [15、从底层实现原理的角度,对比一下Dubbo和Spring Cloud的优劣!](/docs/distributed-system/dubbo-vs-springCloud.md)
192+
- [16、作业:自己独立画出Spring Cloud的架构原理图,RPC框架架构设计图!](/docs/distributed-system/springCloud-and-rpc-framework.md)
189193

190194

191195
### 第二季-高并发
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
底层架构原理是类似的
2+
3+
**Dubbo,RPC的性能比HTTP的性能更好,并发能力更强,经过深度优化的RPC服务框架,性能和并发能力是更好一些**
4+
5+
很多中小型公司而言,其实稍微好一点的性能,**Dubbo一次请求10ms,Spring Cloud耗费20ms**,对很多中小型公司而言,性能、并发,并不是最主要的因素
6+
7+
**Spring Cloud这套架构原理,走HTTP接口和HTTP请求,就足够满足性能和并发的需要了,没必要使用高度优化的RPC服务框架**
8+
9+
10+
11+
Dubbo之前的一个定位,就是一个单纯的服务框架而已,不提供任何其他的功能,配合的网关还得选择其他的一些技术
12+
13+
**Spring Cloud**,中小型公司用的特别多,老系统从**Dubbo迁移到Spring Cloud**,新系统都是用**Spring Cloud来进行开发,全家桶,主打的是微服务架构里,组件齐全,功能齐全。网关直接提供了,分布式配置中心,授权认证,服务调用链路追踪,Hystrix可以做服务的资源隔离、熔断降级、服务请求QPS监控、契约测试、消息中间件封装、ZK封装**
14+
15+
16+
剩是剩在功能齐全,中小型公司开箱即用,直接满足系统的开发需求
17+
18+
19+
**Spring Cloud**原来支持的一些技术慢慢的未来会演变为,跟阿里技术体系进行融合,**Spring Cloud Alibaba**,阿里技术会融入**Spring Cloud**里面去
20+
21+
22+
23+
24+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
25+
26+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
27+
28+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
29+
30+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
31+
32+
**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力**
33+
34+
**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问**
35+
36+
**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流**
37+
38+
**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务**
39+
40+
**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务**
41+
42+
**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可**
43+
44+
**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航**
45+
46+
**“狸猫技术窝”**,找到我们的训练营的详情页面
Loading

docs/distributed-system/rpc-design.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
这个面试题还是挺常见的,在面试突击第一季里,基本上带了一下,当时但是没有细讲,是因为当时面试突击第一季里对服务框架的原理没有做一个相对深入一点点的分析,当时主要就是讲了一些最基本的概念
2+
3+
人家并不是要你手撸一个**RPC框架**,资料,现场手撸一个**RPC框架**,撸的特别的简单,人家也不是要你手撸,也不是说让你进来了以后就是让你来研发RPC框架的
4+
5+
系统设计的问题,就是让你站在系统设计的角度,来考虑一下,到底如果要设计一个RPC框架,你会如何来考虑
6+
7+
动态代理:比如消费者和提供者,其实都是需要一个实现某个接口的动态代理的,RPC框架的一切的逻辑细节,都是在这个动态代理中实现的,动态代理里面的代码逻辑就是你的RPC框架核心的逻辑
8+
9+
JDK提供了API,去创建针对某个接口的动态代理
10+
11+
调用动态代理对象的方法之后,此时就应该先干一个事情,通过Cluster层的一些组件,服务注册中心,是用什么技术来进行实现呢?往简单了说,服务注册中心也可以是你自己手撸一个,也不难
12+
13+
自己手撸一个,服务去注册,其他服务去拉取注册表进行发现
14+
15+
**ZooKeeper**,稍微自己上网百度搜索一下,**ZooKeeper**入门使用教程,基本概念和原理,还有基本的使用,了解一下
16+
17+
**Cluster层**,从本地缓存的服务注册表里获取到要调用的服务的机器列表
18+
19+
**负载均衡****面试突击第一季**里,我们分析过**Dubbo的负载均衡策略**,此时你就可以把那些策略说一说,我要设计多少种策略,从服务的机器列表中采用负载均衡算法从里面选择出来一台机器
20+
21+
选择好了机器,知道了对方的端口号,而且知道你的请求调用,调用哪个Interface的哪个方法,把这些信息交给协议层
22+
23+
把数据组织一下,**协议****序列化机制****底层用什么网络通信框架**,比如**netty,mina**现在用的比较少,序列化和反序列化有没有概念,**Java基础概念,一个复杂的请求数据序列化成二进制的字节数组**
24+
25+
**反序列化就是从字节数组变成请求数据结构**
26+
27+
按照那个协议的规范对请求数据进行组织,不同的协议,组织出来的数据看起来是不一样的
28+
29+
**netty基本的原理**
30+
31+
解析完毕了之后,就知道,应该调用自己本地哪个Interface的实现类的哪个方法
32+
33+
34+
35+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
36+
37+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
38+
39+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
40+
41+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
42+
43+
**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力**
44+
45+
**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问**
46+
47+
**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流**
48+
49+
**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务**
50+
51+
**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务**
52+
53+
**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可**
54+
55+
**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航**
56+
57+
**“狸猫技术窝”**,找到我们的训练营的详情页面
58+
59+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
### 1、作业1
3+
4+
**把RPC框架如何设计,这个问题,你把整体思路去屡一下,对应的一些细节,很多可以参考之前面试突击第一季的,还有一些网络通信框架,netty,找一些资料,补充了解一些细节,包括动态代理**
5+
6+
序列化协议
7+
8+
### 2、作业2
9+
10+
**不看资料,手画Spring Cloud底层原理,Eureka**
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
问你**Dubbo底层架构原理**是一样的,不求你说能看过**Spring Cloud的源码**,单单就是说搞明白他的一些底层架构原理,也是不错的
2+
3+
![Eureka服务注册中心的原理](/docs/distributed-system/images/springCloud-study-theory.png)
4+
**Eureka、Ribbon、Feign、Zuul**
5+
6+
就是优化并发冲突
7+
8+
如果你基于**Spring Cloud**对外发布一个接口,实际上就是支持**http协议**的,对外发布的就是一个最最普通的**Spring MVC的http接口**
9+
10+
**feign**,他是对一个接口打了一个注解,他一定会针对这个注解标注的接口生成动态代理,然后你针对feign的动态代理去调用他的方法的时候,此时会在底层生成http协议格式的请求,/order/create?productId=1
11+
12+
底层的话,使用HTTP通信的框架组件,**HttpClient****先得使用Ribbon去从本地的Eureka注册表的缓存里获取出来对方机器的列表,然后进行负载均衡,选择一台机器出来,接着针对那台机器发送Http请求过去即可**
13+
14+
配置一下不同的请求路径和服务的对应关系,你的请求到了网关,他直接查找到匹配的服务,然后就直接把请求转发给那个服务的某台机器,**Ribbon从Eureka本地的缓存列表里获取一台机器,负载均衡,把请求直接用HTTP通信框架发送到指定机器上去**
15+
16+
17+
18+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
19+
20+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
21+
22+
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问**
23+
24+
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。**
25+
26+
**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力**
27+
28+
**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问**
29+
30+
**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流**
31+
32+
**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务**
33+
34+
**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务**
35+
36+
**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可**
37+
38+
**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航**
39+
40+
**“狸猫技术窝”**,找到我们的训练营的详情页面
41+

0 commit comments

Comments
 (0)