From af2414f4fc441f137f97e211908271f821c601f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BA=AE?= Date: Tue, 30 Jul 2019 23:06:34 +0800 Subject: [PATCH 1/3] add doc --- README.md | 4 ++ .../dubbo-vs-springCloud.md | 46 ++++++++++++++ .../images/springCloud-study-theory.png | Bin 0 -> 153438 bytes docs/distributed-system/rpc-design.md | 59 ++++++++++++++++++ .../springCloud-and-rpc-framework.md | 10 +++ .../springCloud-study-theory.md | 41 ++++++++++++ 6 files changed, 160 insertions(+) create mode 100644 docs/distributed-system/dubbo-vs-springCloud.md create mode 100755 docs/distributed-system/images/springCloud-study-theory.png create mode 100644 docs/distributed-system/rpc-design.md create mode 100644 docs/distributed-system/springCloud-and-rpc-framework.md create mode 100644 docs/distributed-system/springCloud-study-theory.md diff --git a/README.md b/README.md index 2e4a394..593bcd7 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,10 @@ - [10、咱们来聊点深入的,说说Dubbo底层的网络通信机制原理!](/docs/distributed-system/dubbo-rock-bottom.md) - [11、Dubbo框架从架构设计角度,是怎么保证极高的可扩展性的?](/docs/distributed-system/dubbo-augmentability.md) - [12、作业:自己独立画出Dubbo的底层架构原理图](/docs/distributed-system/dubbo-independent-framework.md) +- [13、如果让你设计一个RPC框架,网络通信、代理机制、负载均衡等该如何设](/docs/distributed-system/rpc-design.md) +- [14、平时除了使用外,有研究过Spring Cloud的底层架构原理么?](/docs/distributed-system/springCloud-study-theory.md) +- [15、从底层实现原理的角度,对比一下Dubbo和Spring Cloud的优劣!](/docs/distributed-system/dubbo-vs-springCloud.md) +- [16、作业:自己独立画出Spring Cloud的架构原理图,RPC框架架构设计图!](/docs/distributed-system/springCloud-and-rpc-framework.md) ### 第二季-高并发 diff --git a/docs/distributed-system/dubbo-vs-springCloud.md b/docs/distributed-system/dubbo-vs-springCloud.md new file mode 100644 index 0000000..d0d9477 --- /dev/null +++ b/docs/distributed-system/dubbo-vs-springCloud.md @@ -0,0 +1,46 @@ +底层架构原理是类似的 + +**Dubbo,RPC的性能比HTTP的性能更好,并发能力更强,经过深度优化的RPC服务框架,性能和并发能力是更好一些** + +很多中小型公司而言,其实稍微好一点的性能,**Dubbo一次请求10ms,Spring Cloud耗费20ms**,对很多中小型公司而言,性能、并发,并不是最主要的因素 + +**Spring Cloud这套架构原理,走HTTP接口和HTTP请求,就足够满足性能和并发的需要了,没必要使用高度优化的RPC服务框架** + + + +Dubbo之前的一个定位,就是一个单纯的服务框架而已,不提供任何其他的功能,配合的网关还得选择其他的一些技术 + +**Spring Cloud**,中小型公司用的特别多,老系统从**Dubbo迁移到Spring Cloud**,新系统都是用**Spring Cloud来进行开发,全家桶,主打的是微服务架构里,组件齐全,功能齐全。网关直接提供了,分布式配置中心,授权认证,服务调用链路追踪,Hystrix可以做服务的资源隔离、熔断降级、服务请求QPS监控、契约测试、消息中间件封装、ZK封装** + + +剩是剩在功能齐全,中小型公司开箱即用,直接满足系统的开发需求 + + +**Spring Cloud**原来支持的一些技术慢慢的未来会演变为,跟阿里技术体系进行融合,**Spring Cloud Alibaba**,阿里技术会融入**Spring Cloud**里面去 + + + + +**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问** + +**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。** + +**我们的课程每天都会有一个作业,引导大家把学习到的项目经验、技术方案和生产优化落地到自己负责的项目中去,让大家出去面试的时候,可以把各种技术结合自己的项目来回答面试官的各种深度拷问** + +**大家不要小看这个,根据我多年的面试经验来看,拥有这个技能的人凤毛麟角,这种人出去绝对是各大公司争抢的对象。** + +**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力** + +**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问** + +**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流** + +**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务** + +**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务** + +**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可** + +**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航** + +**“狸猫技术窝”**,找到我们的训练营的详情页面 diff --git a/docs/distributed-system/images/springCloud-study-theory.png b/docs/distributed-system/images/springCloud-study-theory.png new file mode 100755 index 0000000000000000000000000000000000000000..35fc87b04479641dac91304fce7651ca8c45d64d GIT binary patch literal 153438 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

8VCcXaBB_tjn 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 Date: Wed, 31 Jul 2019 18:29:12 +0800 Subject: [PATCH 2/3] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 593bcd7..5d08ad5 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,7 @@ - [04、作业:系统分析一下,自己距离大厂offer差在哪里?](/docs/distributed-system/homework.md) - [05、感受一下BAT面试官对分布式技术的十几个面试连环炮!](/docs/distributed-system/BAT-interview-fire.md) - [06、你们公司用的Dubbo?那你再额外说说Spring Cloud的核心架构原理?](/docs/distributed-system/core-architecture-principle%20.md) -- [07、基于Dubbo和Spring Cloud分别搭建一个电商系统来快速体验一下!](/docs/distributed-system/Dubbo-SpringCloud-experience.md) +- [07、基于Dubbo和Spring Cloud分别搭建一个电商系统来快速体验一下!](/docs/distributed-system/Dubbo-SpringCloud-experience.md)[代码下载点击这里哦!](https://github.com/shishan100/Java-Interview-Advanced/raw/master/docs/distributed-system/code/code.zip) - [08、作业:你们的系统使用了哪种服务框架?为什么要这样技术选型?](/docs/distributed-system/distributed-framework-selection.md) - [09、看过Dubbo源码吗?说说Dubbo的底层架构原理?](/docs/distributed-system/dubbo-framework-principle.md) - [10、咱们来聊点深入的,说说Dubbo底层的网络通信机制原理!](/docs/distributed-system/dubbo-rock-bottom.md) From 7113a56e6b71a39257182eecced3ff64537f272e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BA=AE?= Date: Thu, 1 Aug 2019 10:06:14 +0800 Subject: [PATCH 3/3] add doc --- README.md | 4 ++ .../images/eureka-register.png | Bin 0 -> 28630 bytes .../images/zookeeper-register.png | Bin 0 -> 42733 bytes .../register-high-availability.md | 0 .../register-production-optimize.md | 34 +++++++++++ .../registration-center- guide.md | 54 ++++++++++++++++++ .../service-register-discovery.md | 14 +++++ 7 files changed, 106 insertions(+) create mode 100755 docs/distributed-system/images/eureka-register.png create mode 100755 docs/distributed-system/images/zookeeper-register.png create mode 100644 docs/distributed-system/register-high-availability.md create mode 100644 docs/distributed-system/register-production-optimize.md create mode 100644 docs/distributed-system/registration-center- guide.md create mode 100644 docs/distributed-system/service-register-discovery.md diff --git a/README.md b/README.md index 5d08ad5..7d9300f 100644 --- a/README.md +++ b/README.md @@ -190,6 +190,10 @@ - [14、平时除了使用外,有研究过Spring Cloud的底层架构原理么?](/docs/distributed-system/springCloud-study-theory.md) - [15、从底层实现原理的角度,对比一下Dubbo和Spring Cloud的优劣!](/docs/distributed-system/dubbo-vs-springCloud.md) - [16、作业:自己独立画出Spring Cloud的架构原理图,RPC框架架构设计图!](/docs/distributed-system/springCloud-and-rpc-framework.md) +- [17、面试官:你们的服务注册中心进行过选型调研吗?对比一下各种服务注册中心!](/docs/distributed-system/registration-center-%20guide.md) +- [18、画图阐述一下你们的服务注册中心部署架构,生产环境下怎么保证高可用?](/docs/distributed-system/register-high-availability.md) +- [19、你们系统遇到过服务发现过慢的问题吗?怎么优化和解决的?](/docs/distributed-system/service-register-discovery.md) +- [20、作业:说一下自己公司的服务注册中心怎么技术选型的?生产环境中应该怎么优化?](/docs/distributed-system/register-production-optimize.md) ### 第二季-高并发 diff --git a/docs/distributed-system/images/eureka-register.png b/docs/distributed-system/images/eureka-register.png new file mode 100755 index 0000000000000000000000000000000000000000..1fd7f754097b98b157cd40adbcbd672ef03a5a11 GIT binary patch literal 28630 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 UE?r|4#a|)W74Yk;J0pMh54!jz!vFvP literal 0 HcmV?d00001 diff --git a/docs/distributed-system/images/zookeeper-register.png b/docs/distributed-system/images/zookeeper-register.png new file mode 100755 index 0000000000000000000000000000000000000000..b9a801814a1185b0ad58a6f4ea36d9e8b1f12f86 GIT binary patch literal 42733 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 Wx5_JP*$268h`Xo&OCxjdrL2 literal 0 HcmV?d00001 diff --git a/docs/distributed-system/register-high-availability.md b/docs/distributed-system/register-high-availability.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/distributed-system/register-production-optimize.md b/docs/distributed-system/register-production-optimize.md new file mode 100644 index 0000000..5872fec --- /dev/null +++ b/docs/distributed-system/register-production-optimize.md @@ -0,0 +1,34 @@ + +#### 分布式系统架构的 + +**服务注册中心,eureka、zk、consul,原理画图画清楚** + +**数据一致性,CP、AP** + +服务注册、故障 和发现的时效性是多长时间 + +注册中心最大能支撑多少服务实例 + +如何部署的,几台机器,每台机器的配置如何,会用比较高配置的机器来做,8核16G,16核32G的高配置机器来搞,基本上可以做到每台机器每秒钟的请求支撑几千绝对没问题 + +可用性如何来保证 + +**有没有做过一些优化,服务注册、故障以及发现的时效性,是否可以优化一下,用eureka的话,可以尝试一下,配合我们讲解的那些参数,优化一下时效性,服务上线、故障到发现是几秒钟的时效性** + +**zk,一旦服务挂掉,zk感知到以及通知其他服务的时效性,服务注册到zk之后通知到其他服务的时效性,leader挂掉之后可用性是否会出现短暂的问题,为了去换取一致性** + + +**所以希望大家好好完成每天的作业,我布置的大量作业,就是为了帮你锻造出这种能力** + +**学习课程以及完成作业的过程中,大家一定会有很多的问题,可以到专栏的评论区去提问** + +**每天我都会和之前带出来的一批阿里、蚂蚁金服、滴滴的优秀同学给大家进行答疑,并且我们还有专门的付费用户的微信群,大家可以在微信群里跟我们一起进行技术交流** + +**如果你能坚持下来,学满6季,还可以获取私人定制的面试一条龙VIP服务** + +**如果是连续6季面试训练营都购买的同学,还可以获取面试一条龙VIP服务** + +**具体信息大家看“狸猫技术窝”公众号的知识店铺内的训练营详情即可** + +**具体可参见训练营目录下的《训练营专属服务》文档。简单来说,这个私人定制的面试VIP服务,会为你的跳槽面试全程保驾护航** + diff --git a/docs/distributed-system/registration-center- guide.md b/docs/distributed-system/registration-center- guide.md new file mode 100644 index 0000000..bc1559a --- /dev/null +++ b/docs/distributed-system/registration-center- guide.md @@ -0,0 +1,54 @@ + +非常常见的一个技术面试题,但凡只要是聊到分布式这块,一定会问问你,**Dubbo,Spring Cloud,服务注册中心**,你们当时是怎么选型和调研的,你们最终是选择了哪块技术呢?你选择这块技术的原因和理由是什么呢? + +**Eureka、ZooKeeper** + +**Dubbo**作为服务框架的,一般注册中心会选择zk + +**Spring Cloud**作为服务框架的,**一般服务注册中心会选择Eureka** + +**Consul、Nacos,**普及型还没那么广泛,我会在面试训练营课程里增加对应的内容,给大家去进行补充 + +#### (1)服务注册发现的原理 + +集群模式 +![ZooKeeper](/docs/distributed-system/images/eureka-register.png) + +**Eureka,peer-to-pee**r,部署一个集群,**但是集群里每个机器的地位是对等的,各个服务可以向任何一个Eureka实例服务注册和服务发现,集群里任何一个Euerka实例接收到写请求之后,会自动同步给其他所有的Eureka实例** +![ZooKeeper](/docs/distributed-system/images/zookeeper-register.png) + +**ZooKeeper,服务注册和发现的原理,Leader + Follower两种角色,只有Leader可以负责写也就是服务注册,他可以把数据同步给Follower,读的时候leader/follower都可以读** + +#### (2)一致性保障:CP or AP + +**CAP,C是一致性,A是可用性,P是分区容错性** + +**CP,AP** + +**ZooKeeper是有一个leader节点会接收数据, 然后同步写其他节点,一旦leader挂了,要重新选举leader,这个过程里为了保证C,就牺牲了A,不可用一段时间,但是一个leader选举好了,那么就可以继续写数据了,保证一致性** + +Eureka是peer模式,可能还没同步数据过去,结果自己就死了,此时还是可以继续从别的机器上拉取注册表,但是看到的就不是最新的数据了,但是保证了可用性,强一致,最终一致性 + +(3)服务注册发现的时效性 + +zk,时效性更好,注册或者是挂了,一般秒级就能感知到 + +eureka,默认配置非常糟糕,服务发现感知要到几十秒,甚至分钟级别,上线一个新的服务实例,到其他人可以发现他,极端情况下,可能要1分钟的时间,ribbon去获取每个服务上缓存的eureka的注册表进行负载均衡 + +服务故障,隔60秒才去检查心跳,发现这个服务上一次心跳是在60秒之前,隔60秒去检查心跳,超过90秒没有心跳,才会认为他死了,2分钟都过去 + +30秒,才会更新缓存,30秒,其他服务才会来拉取最新的注册表 + +三分钟都过去了,如果你的服务实例挂掉了,此时别人感知到,可能要两三分钟的时间,一两分钟的时间,很漫长 + +#### (4)容量 + +zk,不适合大规模的服务实例,因为服务上下线的时候,需要瞬间推送数据通知到所有的其他服务实例,所以一旦服务规模太大,到了几千个服务实例的时候,会导致网络带宽被大量占用 + +eureka,也很难支撑大规模的服务实例,因为每个eureka实例都要接受所有的请求,实例多了压力太大,扛不住,也很难到几千服务实例 + +之前dubbo技术体系都是用zk当注册中心,spring cloud技术体系都是用eureka当注册中心这两种是运用最广泛的,但是现在很多中小型公司以spring cloud居多,所以后面基于eureka说一下服务注册中心的生产优化 + +(5)多机房、多数据中心、健康检查 + + diff --git a/docs/distributed-system/service-register-discovery.md b/docs/distributed-system/service-register-discovery.md new file mode 100644 index 0000000..d9ca3fe --- /dev/null +++ b/docs/distributed-system/service-register-discovery.md @@ -0,0 +1,14 @@ + +**zk,一般来说还好,服务注册和发现,都是很快的** + +**eureka,必须优化参数** + +**eureka.server.responseCacheUpdateIntervalMs = 3000** +**eureka.client.registryFetchIntervalSeconds = 30000** + +**eureka.client.leaseRenewalIntervalInSeconds = 30** +**eureka.server.evictionIntervalTimerInMs = 60000** +**eureka.instance.leaseExpirationDurationInSeconds = 90** + +**服务发现的时效性变成秒级,几秒钟可以感知服务的上线和下线** +