00:00
前面呢,我们创建出了几个基本的微服务,并且呢用逆向工程为他们生成了基本的自删感它代码,接下来呢,我们需要搭建出我们分布式系统的基本环境,首先在我们分布式开发里边,我们需要知道注册中心、配置中心以及网关这三个基本概念。在分布式开发里边,如果我们有各个微服务,我们首先呢每一个微服务上线都应该将他自己注册到注册中心,这样做的好处就是如果我们订单服务想要调用商品服务,那么订单服务呢,可以先去注册中心看一下哪几个商品服务都注册进来了,比如一号机器的商品服务,二号机器的商品服务都注册进来了,那么订单服务呢,就可以随便挑一个商品服务来进行远程调用,这是我们之前说的注册中心的一个基本作用,其次呢,我们还需要有一个配置中心,那么各个微服务的配置众多,比如我们商品微服务,现在呢,在十台机器上。
01:01
我们想要改商品服务的某一项配置,那么这十台机器都要改,挺麻烦的,我们希望呢,有一个配置中心来集中管理配置所有的商品服务呢?从配置中心获取他自己的配置,我们在配置中心改掉某一个配置。同样的,这些服务实时修改掉,这是我们说的配置中心。同样我们还需要有一个网关,那么我们所有前端的请求先通过网关进行统一的,比如我们的健全过滤、路由等等,由我们的网关抵达给我们的其他服务来做一些预先的工作。那么注册中心、配置中心、API网关这几个功能呢?在spring cloud初代产品中分别对应这么几个组件,我们来可以搜索一下spring cloud,我们来到它的官网,我们来看一下spring cloud的所有项目。注册中心呢?我们以前用的是spring cloud里边的,我们来找一下。
02:03
在netfflix这个组件里边有一个有。我们来看spring cloud Netflix。它包含我们这个服务的注册发现是使用U瑞卡,包括呢我们的配置中心在spring cloud里边呢,对应的是我们这个组件,这个spring cloud conf,它是我们的这个配置中心,它帮我们来集中管理配置,网关呢,它使用的是Netflix组件里边的zoo,我们来找一下spring cloud Netflix,好,这里边呢,由uureka注册中心,包括网关zoo,包括呢咱们这个断路保护hycentricx等等,而在我们这个项目里边呢,我们的注册中心不来使用uure卡,包括网关也不用zoo,我们用了spring cloud阿里巴巴给我们提供的一些组件,详细的资料呢,我们可以打开我们给大家发的基础篇文档里边的课件里边spring cloud组件,然后呢,我们来看一下我们说到这个spring cloud,阿里巴巴它呢,是我们阿里在一八年的时候给我们开源的微服开发的。
03:11
的一站式解决方案,它里边呢,给我们提供了分布式应用里边所必须的一些组件,比如我们的注册中心,配置中心等等,而且呢,它的最大的优点是我们只需要一些少量的注解以及少量的配置,就能可以完全的接入我们以前的微服务系统里边,能帮我们快速的搭建出我们分布式的应用系统,当然它的整个get HUB的地址就在这。至于我们为什么要用它最大的原因,如果大家去来搜索有瑞卡停止维护相关的信息,我们就会发现网上呢一大片都在说我们这个有瑞卡停止维护了,停止开源了,官方这个维护又失败了等等一堆的问题。其实呢,我们使用spring cloud,阿里巴巴最重要的原因在于这儿,首先呢,我们如果用spring cloud给我们带的那些组件,当然spring cloud带的组件也不是自己写的,它是整合外部的,而外部的这些组件呢,有部分的组件都已经停止更新和维护了,比如我们说的有瑞卡。
04:11
Flex的好多组件也停止了开源,给我们开发呢带来了很多的不方便,而且呢,包括部分环境搭建起来非常复杂,特别是呢,我们在做服务熔断的时候,有要有一些可视化界面,这个可视化界面呢也不完善,环境搭建呢也比较复杂等等,我们如果想要定制一些东西,我们还需要大量的二次开发,包括呢,我们spring的原生配的那些组件,好多的配置复杂,难以上手,而且呢部分配置的差别哎比较细,我们需要呢对它有一个细致的把握,才能合理应用等等,这是我们以前用S门克lo的给我们带来的那些组件的一些痛点,而s spring cloud的阿里巴巴它呢就非常优秀了,它给我们提供了非常多的性能强悍的一些组件,而他们设计合力也历经了考验,最起码开源出来的这些组件都是他们已经实战过的产品。而且呢,他们的整个成。
05:12
大产品给我们能带来非常丰富的一些可视化界面,包括配置中心,注册中心,包括我们的这个熔断控制平台等等等等,都有完善的可视化界面,给我们运维也带来了极大的方便,而且呢,它的搭建简单,学习曲线低等等等等,基于以上的各种优点呢,我们在开发分布式应用的时候,我们大多数的组件,我们可以优先选择springlo的阿里巴巴对应的相关产品,那么基于这些我们最终的整合方案如下,首先呢,我们来看在spring cloud阿里巴巴里边,它呢提供了非常多的组件在这边,包括呢,官方也有中文文档,我们也可以打开看,那我们最终呢是来选择这些的,首先我们使用spring cloud,阿里巴巴提供的NAS系列来作为我们的注册中心和配置中心,这个呢就相当于替换以前s cloud的U瑞卡。
06:09
而我们声命式的远程调用以及负载均衡,我们可以使用门的原生提供的份以及ribbon,那么这个ribon呢,还是在netflex里边的一个组件,而粪呢,由于Netflix把它原来的份已经闭园了,所以spring cloud呢,开了一个open粪,诶它维护了一个open份,开源的这个分,我们使用这个来做远程调用也没什么问题。然后呢,如果我们要做服务的熔断降级等等,那么在spring cloud里边原来呢是netflex里边的hycentricx来找一下,Netflex里边原来呢,使用centric来做断路保护服务的熔断降级等等,那现在呢,我们可以使用s spring cloud,阿里巴巴给我们带来的这个sel,这些sel呢,它不仅有熔断降级,还有流量控制系统,负载保护等等等各种强大的功能,而且呢,它有完善的监控平台,我们用起来也非常方便。
07:09
包括呢,在API网关里边,我们呢,使用spring cloud为我们开放的最新版的API网关叫gety,来找一下spring cloud gety。诶,在这这个get外呢,拥有比以前zoo更强大的性能,以及更灵活优秀的设计,那么其他的组件,比如我们这个调用链监控,我们还是使用spring格lo为我们提供的lo来找一下。在这。我们使用它呢来做我们的调用链监控,包括呢来整合zip k我们的这个组件,比如分布式事物,我们使用spring cloud阿里巴巴为我们提供的西塔,这是原来阿里巴巴菲卡框架给我们开源升级过来的,我们现在起的新名叫西塔,他帮我们来解决分布式事务,那对于我们spring cloud阿里巴巴里边,诶我们将会使用它来做分布式事,那spring cloud阿里巴巴的权限产品都在我们spring cloud官方网站这一块有介绍,那在spring cloud阿里巴巴里边,诶他帮我们来介绍了阿里巴巴能帮我们来提供的这么多的功能,比如我们这个分布式的,咱们这个配置中心,包括呢,我们服务的注册发现,以及我们分布式事务等等等等。
08:32
那么呢,最终我们在分布式系统里边,我们将会用到这些组件,NAS的配置中心,Rib本和phone来做远程调用,以及centerna的我们服务,熔断、降级限流,包括我们get外来做网关,Lo调用链监控和CTA我们来做分布式事务。当后续的技术呢,我们一点一点进行学习。而我们如何整合spring cloud阿里巴巴进入我们的项目,首先呢,我们得面临一个版本选择的问题,包括在spring cloud官方网站,在spring cloud阿里巴巴里块这一块呢,都帮我们来说了,如果我们spring cloud版本用的是这个,那并且spring boot版本对应的是这个,那我们就应该选择spring cloud阿里巴巴版本的这一块,而我们现在的微服务都是spring boot2.1版本的,来可以看一下,比如来到某一个服务里边,我们看我们现在依赖的是spring boot2.1版本的,包括呢,我们cloud也用的是greenish这个版本的,所以呢,我们在这呃对应的相当于是这个,我们最终呢要导入spring cloud阿里巴巴的二点一点其他版本,而我们后来呢,每一个微服务都可能会用到spring cloud阿里巴巴对应的某一些组件,所以呢,我们将这些组件可以直接导入到我们之前创建的common这个工程里边。那么spring。
09:54
Cloud阿里巴巴要怎么使用,我们先来做第一步,在我们项目的common工程里边来引入这些依赖就行了,包括呢,在STEM cloud阿里巴巴官方文档里边也说了如何使用我们呢可以把这个依赖引进来,那我们现在呢,就用2.1.0版本的spring cloud阿里巴巴,我们把这个呢复制过来,来到我们的common工程里边,我们common工程呢,在这写dependency management,将这个运行,这个呢是使用的依赖管理,相当于呢,我们以后在depends里边来引我们spring cloud阿里巴巴相关的依赖就不用写版本号了,全被我们这个进行管理。那么在我们开发正式的功能之前,我们就后来先来学习一下我们spring cloud阿里巴巴里边我们要用的一些基本组件。
我来说两句