forked from shishan100/Java-Interview-Advanced
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
文亮
committed
Jul 28, 2019
1 parent
1681d5f
commit bfc88fb
Showing
7 changed files
with
120 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions
44
docs/distributed-system/你们公司用的Dubbo?那你再额外说说Spring Cloud的核心架构原理.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
如果聊分布式这块的技术,围绕**Dubbo来拷问**的,但是呢,现在其实非常流行的是**Spring Cloud,Dubbo和Spring Cloud以及阿里系的一些技术**,现在正在融合,**Spring Cloud Alibaba,只不过现在用的公司暂时还没那么多而已** | ||
|
||
作为合格的工程师,行业里主流的**分布式服务技术栈**,**Dubbo**和**Spring Cloud**两种,有的公司他是用**Dubbo**的,不用**Spring Cloud**的,有的公司是用**Spring Cloud**的,不用**Dubbo**的,他们是代表了两种主流技术栈 | ||
|
||
Java工程师,Dubbo和Spring Cloud起码是基本原理,都有一定的了解 | ||
|
||
**大白话 + 现场画图** | ||
|
||
上网看一些博客资料,或者是买一些Spring Cloud的书,可能没考虑过一个事儿,第一篇必须是用非常通俗的语言,把一个系统如果用Spring Cloud来做分布式架构的话,那么他需要用到Spring Cloud哪些组件,为什么 | ||
|
||
跟着书或者博客,直接上手开始搭建demo,开始做起来了 | ||
|
||
**分别用Dubbo和Spring Cloud做两个最基本的Demo工程**,用电商背景来搭建几个服务 | ||
|
||
比如说,现在我们有一个电商系统 | ||
|
||
用户现在需要下单购买一些东西这样子,订单系统、库存系统、仓储系统、积分系统 | ||
|
||
不太可能说用单块的架构,电商系统你想支撑多少用户量?10万注册用户,日活1000用户来你这里来购买? | ||
|
||
百万级用户,十万级日活,单块系统就不太合适了,背后有几十个人的团队在协作开发,此时单块系统是绝对不合适的 | ||
|
||
梳理和明确一个概念:电商系统,拆分为了多个子系统,一次下订单的请求需要多个子系统协作完成,每个子系统都完成一部分的功能,多个子系统分别完成自己负责的事情,最终这个请求就处理完毕 | ||
|
||
我们不会让每个视频太长,按照我们大纲来讲,说是60讲,粗略的大纲,其实最终会拆分成可能上百讲,Spring Cloud架构原理,我们就要分为上下两讲来说 | ||
![Spring Cloud核心架构原理](/docs/distributed-system/images/01_Spring%20Cloud核心架构原理.png) | ||
|
||
###Spring Cloud | ||
|
||
####Eureka:服务注册中心 | ||
####Feign:服务调用 | ||
####Ribbon:负载均衡 | ||
####Zuul/Spring Cloud Gatway:网关 | ||
|
||
这么多的系统,电商系统包含了20个子系统,每个子系统有20个核心接口,一共电商系统有400个接口,这么多的接口,直接对外暴露,前后端分离的架构,难道你让前端的同学必须记住你的20个系统的部署的机器,他们去做负载均衡,记住400个接口 | ||
|
||
|
||
微服务那块,**网关** | ||
|
||
**灰度发布**、**统一熔断**、**统一降级**、**统一缓存**、**统一限流**、**统一授权认证** | ||
|
||
|
||
|
||
**Hystrix**、**链路追踪**、**stream**、很多组件,Hystrix这块东西,其实是会放在高可用的环节去说的,并不是说一个普通系统刚开始就必须得用的,没有用好的话,反而会出问题,**Hystrix线路熔断的框架**,必须得设计对应的一整套的限流方案、熔断方案、资源隔离、降级机制,配合降级机制来做 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
**Spring Cloud**入门和使用级别的资料,建议大家自行百度,面试训练营,不是说针对每个技术详细给大家讲解的一个课程,我们会针对每个技术推出重磅的项目实战课程 | ||
|
||
**自己公司如果是分布式的架构,你们当前选用的是Spring Cloud?Dubbo?自己研发的服务框架?对比一下各种服务框架的优点和缺点,技术选型,为什么?** |
8 changes: 8 additions & 0 deletions
8
docs/distributed-system/基于Dubbo和Spring Cloud分别搭建一个电商系统来快速体验一下.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
Spring Cloud来搭建了一套 | ||
|
||
http://localhost:9000/order/order/create?productId=1&userId=1&count=3&totalPrice=300 | ||
|
||
刚开始几次请求会出现请求超时的问题,这个问题大家别纠结,后续要给大家讲spring cloud生产系统的优化 | ||
|
||
小小的小作业,参考一下dubbo的官方文档,搭建一个电商系统的dubbo版本的案例出来,我后面会搭建好的 | ||
![代码](/docs/distributed-system/code/代码.zip) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
针对面试突击第一季关于分布式这块的内容,相对应的做一个回顾和总结 | ||
|
||
面试突击第一季总共四五十讲,每个技术专题大概也是有十来讲 | ||
|
||
####(01)为什么要把系统拆分成分布式的?为啥要用dubbo? | ||
####(02)dubbo的工作原理是啥?注册中心挂了可以继续通信吗? | ||
####(03)dubbo都支持哪些通信协议以及序列化协议? | ||
####(04)dubbo支持哪些负载均衡、高可用以及动态代理的策略? | ||
####(05)SPI是啥思想?dubbo的SPI机制是怎么玩儿的? | ||
####(06)基于dubbo如何做服务治理、服务降级以及重试? | ||
|
||
这些问题在面试突击第一季里,我们都讲解过了,都是非常高简单的一些问题,作为一个合格的工程师,如果你是用了分布式系统架构,也就是把大的系统拆分为了多个子系统,或者是 多个服务 | ||
|
||
你肯定会用到一种服务框架,Dubbo、Spring Cloud、gRPC、Thrift | ||
|
||
你必须 对这些服务框架的核心的架构原理,有一个认识和了解,服务注册和发现,通信和序列化,负载均衡,扩展机制,请求重试,请求超时 | ||
|
||
####(07)分布式系统中接口的幂等性该如何保证?比如不能重复扣款? | ||
#####(08)分布式系统中的接口调用如何保证顺序性? | ||
|
||
接口幂等性,分布式系统,如果不保证,是否会发生类似重复下单,重复扣款之类的问题 | ||
|
||
#####(09)如何设计一个类似dubbo的rpc框架?架构上该如何考虑? | ||
|
||
自己看过一些dubbo、spring cloud的源码,对一款服务框架底层的实现原理,有一定的了解和认识,此时如果说他希望能够深入的考察你一下,看看你的水平,这个时候就有可能会问你这个问题 | ||
|
||
#####(10)说说zookeeper一般都有哪些使用场景? | ||
#####(11)分布式锁是啥?对比下redis和zk两种分布式锁的优劣? | ||
|
||
拆分成了分布式系统,就说明有很多子系统在同时的运作,如果说两个子系统都需要对某个数据资源进行一系列复杂的操作,在复杂操作期间,不能让数据被其他任何人来改变。分布式锁,技术实现原理 | ||
|
||
#####(12)说说你们的分布式session方案是啥?怎么做的? | ||
|
||
前后端分离之后,一般是前端那边来care session之类的问题,对于后端来说,玩儿分布式session玩儿的很少了 | ||
|
||
#####(13)了解分布式事务方案吗?你们都咋做的?有啥坑? | ||
|
||
|
||
**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问** | ||
|
||
**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。** | ||
|
||
**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力** | ||
|
||
**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问** | ||
|
||
**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流** | ||
|
||
**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务** | ||
|
||
**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务** | ||
|
||
**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可** | ||
|
||
**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航** | ||
|
||
“狸猫技术窝”,找到我们的训练营的详情页面 | ||
|
||
|
||
|
||
|