00:01
嗯,我们要下边咱们说说这个spring cloud。Spring cloud呢,大家首先呢先。对一个事情先有一个印象哈,就cloud它的这个核心。啊,它是基于HTTP协议的。啊呃,也有的说它是基于这个rest。是其实是一个意思啊,这是它和这个double呢,最最核心的最本质的一个区别啊。这是他。和。Double的最本质的区别。啊,最本质的区别。Double核心是啥?他的他基于是。啊,它的核心是基于RPC哎,远程方法调用啊,远程过程调用啊,是double是基于这个啊,你你假如说面试的时候,人家跟你聊,人家问你说这个double和spring cloud有啥区别呀。
01:09
啊,你说。哎,你你们是你们是这个一门心思想把我弄死是吧。这个其实。其实这个你们想,你们想要弄死我还是很容易的,是吧?啊,那你们今天做的很棒啊。我已经,我已经这个濒临崩溃的边缘了啊。嗯。呃,Spring cloud啊,它是基于HTTP协议啊,它里边整个它底层互相之间各个组件之间交互都是使用HTP协议,Double呢,Double是一个RPC的一个框架啊,就是我们最起码能说上来这个。啊,然后其实呢,说起来这个我想起来有同学出去面试的时候,有人问他说spring boot和double有啥区别。
02:04
就spring boot和大有什么区别,就意思是问你,就我就感觉吧,这个问题就好像你喝水的杯子和那只花猫有什么区别?这俩东西怎么可能放在一起去比呢,是吧,这个东西所以说就是,嗯,大家也不要觉得出去面试的时候,那个面试官就就好像就是夺权威或者怎么样,他有时候问的问题也特别的不着调。啊,你虽以说有时候他问一些不着调的问题,你不要你不要去,因为这个去打击你自己的这个信心,对吧?啊,啊或者说或者说其实有的时候,有的时候你说的是对的,对吧,有的时候这个可能是是他理解的问题啊。哎,这是这是我们先先把它先搞清楚,然后呢,说我们spring cloud里边呢,我们会用到这样一些个组件啊就。它有很多组件,但是我们有一些呢,是呃,最基本的组件。
03:00
哎,他有一个注册中心。叫尤瑞卡。诶,它有一个。呃,叫客户端负载均衡这个东西呢,叫rib。然后呢,它还有一个东西叫做。呃,声明是远程方法。调用这个是用的是费。哎,然后呢,这个服务的降级。熔断这个呢,用的是S。还一个网关。是做。有这么几个组件,这几个组件是啥关系呢?来,咱们画个图来看一下啊。首先呢,Spring cloud也是说我们用它进行分布式架构的开发,哎,也是有这个consumer。Provider。
04:00
哎,那呢,当然是去调用R。呃,那consumer consumer provider呢,我们。在框架,现在用了框架以后肯定都是声明式调用,其实说啥叫声明式调用呢,就是很简单。我们只需要把代表远程方法的那个接口outwear给他装备进来就好了。啊,比如说那个EP remote service,诶这个接口我把它装备进来,下边就可以用了,这就叫声明式的。而这个跟声明是相对应的,不就是我们编程式的。编程式的呢,就这里边的整个的过程啊,整个的这个过程全部都需要你自己去写代码。
05:01
写代码就很多啊,这个时候我们声明式的,只要把组件装配进来,你就可以用了。就不去考虑它远程连接的那些个细节。啊,这就是编程式和声明式的区别。我们spring cloud呢,要想实现声明式的调用呢?一样的,它也需要借助于。啊,这个注册中心。哎,这是尤瑞卡,是我们的注册中心。哎,就是它就相当于我们组K这样的。我们provider呢?诶,他去注册他自己的这个信息。哎,这个方向是朝这样朝这样的。他把他的信息注册到U瑞卡的里边。然后呢,这个consumer呀,它是订阅这个信息。哎,我们有了这个double keyboard的这样一个基础哈,体验过以后呢,到这儿其实是一个意思的啊,他们就是细节上会有区别啊,但是本质上是一样的。
06:10
就是他们呃,这种工作的模式哈,这个大致上是差不多的啊,U瑞卡是注册中心provider,把他的这个信息呢注册进去。哎,然后呢,Consumer呢,从有瑞卡里边呢,去订阅啊,这个随时他这边有注册中心有更新的话,他去推送到这个里边。呃,那这个不光是这样哈。我们说这个provider呢,根据我们的需要,它有可能是启动多个实例。啊,它有可能启动多个实例,然后整体上他们构成一个集群。哎,这时候它们构成一个集群。
07:00
呃,这个集群的话呢,我们说了集群是说它里边的,呃,运行的东西是一样的啊,就是说你运行的是同一个模块,运行相同的东西的话,这个是集群,所以说呢,这个是同一个微服务哈,启动多个实例啊,构成一个集群。那这个时候它有集群以后呢。啊,我这个客户端如何去决定访问其中的哪一个。这里边呢,那当然还有得有一个东西呢,作为这个负载均衡的啊,这样一个工具吧,哎,这里边呢,它用的其实是它底层哈,它底层用的是rib。这个ribbon呢,为什么说它是客户端的负载均衡。因为呢,它其实它也是个价包嘛,这个价包呢,是在consumer这边加的。啊是consumer这边加个rib这个加班,然后去决定这边用哪一个。啊,它所以说是在consumer这边,那么consumer调用provider的时候,Consumer呢,它是一个客户端。
08:03
啊,就是单独看他俩的时候,他是客户端哎。所以说这个由这个ribbon呢去决定我们这个,哎,在这个集群里边是去访问哪一个。哎,这个rib呢,这是我们所谓的客户端的负载均衡。然后呢,我们还有一个东西呢,叫做这个肺。呃,这个F是这样的哈,Thin thin是需要以这个rib本为基础的。
09:00
这画一个虚线哈。呃。就是说我们这个环境里边呢,肯定是,就是说你倒了这个F哈,它自动的就会把这个rib本给加进来啊,这个thing要想工作的话,它底层得有一个,呃,他就本来就需要加入这个rib本啊,所以F是基于这个rib本去完成它的功能的。这个肺呢,是一个生命式的调用啊,有了肺以后,我们。哎,这个consumer这只需要装配那个接口啊,装配provider暴露的那个接口,然后他就可以用了啊,这个接口呢,当然我们也可以是给它放到一个common工程里边。嗯。我们说这个接口哈,啊这个。Provider暴露的一个远程的接口。暴露的。呃,他就是暴露的,暴露出来就是为了远程访问的哈,哎。
10:01
是provider,它暴露出来这个接口。我看看有没有一个拐弯的箭头。是这么个意思啊,它暴露出来这个接口,然后这个fin这边呢,通过fin哈,我们去装配到consumer里边。哎,这个时候consumer这就能用了。这个就是这个F的功能啊,这就是这个F的功能。好,然后再往再往后呢,还有一个东西哈,这个tricks它起的一个作用呢,叫做。呃,服务的熔断和降级。啊,这个为什么需要有它呢。
11:00
就是说consumer,它在调用provider的时候,其实呢,很难保证说provider绝对能够返回正常的结果,这个谁也谁也保证不了。啊,那么说这个在这样的不确定的背景下啊,因为这里边儿有不确定性。我去调provider的时候,哎provider呢,他考虑他自己说万一呢,我要是哎没办法好好的提供这个服务的话。那么我呢,提前给人家准备一个应急的预案,如果说呢,你要是不能够去正常的返回的话,你就用我这个应急的这个预案。这个熔断啊,它是provider的。提供的。的这个备用方案。嗯,那然后呢。啊,那还有一个叫降级。
12:03
降级端。啊,降级啊。它是consumer这一段。提供的一个备用的方案。啊,就是说其实呢,你看这事儿哈。这个熔断表示provider他自己对自己其实也不老有信心。啊,不是特别的有把握,是我要是给人家提供不了的话啊,这个时候我我哎你可以用我这个备用方案,呃,降级呢是consumer呢,他也知道这个provider呢,其实也不一定就特别特别这个给力啊,也不是特别不是100%靠谱。所以说我去用它的时候呢,我自己也得留一手。啊,就他们互相。也不能叫互相提防吧,就是说这个他是提防他自己,他是提防provider啊,但是这是consumer这边的方案是降级,Provider这边方案是垄断。
13:01
好,那呃,然后呢。啊,对这个服务的运行的一个状态呢,我们有一个监控。这个监控呢,是一个tricks提供的一个。呃,控制面板啊,就不不叫控制面板叫仪表盘。我看看这往哪画哈。哎,这个tricks。嗯,但是包的。这咋写来着?Dashboard。呃,控制面仪表盘啊,它有这么一个仪表盘,它可以去监控啊,我们这个服务这些整个这服务呢,他们工作的一个状态。
14:04
这整个呢,他们都是这个福。我给这个放到右下角这哈,这是这个,这是我们的服务呗。呃,然后他呢,是对这个服务进行监控。嗯,这样吧。微服务也是服务呗啊。就他是去监控这些服务。哎,可以去看到这个服务的一个运行的状态。啊,它的健康的状态,呃,对调用的这个次数啊,然后呢,这里边成功的次数,失败的次数等等啊,然后这个可以以图形化的方式非常直观的去显示出来。显示出来我们这个叫,呃,它运行的一个状态啊,这是一个监控。
15:01
呃,然后呢,再再然后还有一个这个网关呢,是一个作为我们统一的一个入口。啊,这个做。呃。一个统一的入口。当然这个zoo呢,其实它为啥说我们通过zoo能够找到这个其他的这个服务哈,为什么能够找到,是因为这个zoo里边呢,其实zoo里边也是有一个ribbon。这个ribbon呢,其实它的功能哈,就是你告诉我。微服务的名字是什么,我拿微服务的名字呢,上这个有瑞卡里边去找这个服务的信息,然后呢,再进一步再看啊,看它这里边儿会不会有这个集群啊什么的。
16:02
啊,就这个时候这个这个这个其实zoo里边呢,其实也是有一个rib本啊。哎,大体上来说呢,他们我们这几个组件哈,他们是这样一个关系。哎,就是我们学的话呢,就是要学这样一些个东西。
我来说两句