00:00
好,前面呢,我们整合了so keepper和double,接下来呢,我们整合spring cloud来做分布式应用。首先我们来说spring cloud跟double之间的区别是什么呢?我们说double是一个分布式服务框架,它呢主要解决我们服务之间,比如A服务,B服务、C服务,我们服务之间远程过程调用问题,也就是他们之间的RPC,而我们spring cloud呢,它是一个分布式的整体解决方案,也就是说在分布式系统里边需要考虑的基本上所有问题,Spring cloud都有对应的解决方案,比如我们有配置管理,包括呢服务发现、熔断机制、路由等等等等,只要是分布式系统里边存在的问题,Cloud呢都有对应的解决方案。那么spring cloud里边最常用的五大组件啊,我们也称五大神兽是什么呢?比如,我们来举一个例子。
01:00
A服务跟B服务,我们以前用zoo keepper和double,那AB服务要注要注册到注册中心里边,那我们spring cloud呢,有相应的组件,有瑞卡,哎,我们来放在里边啊,A服务跟B服务之间我们要互联互调,哎,比如呢,我们A服务我们部署了三个实例,B服务呢,我们部署了四个例,那么我们A服务要调用B服务,那我们到底要调用哪台机器上的B服务,我们还能做客户端的负载均衡,比如我们用RI,哎,包括呢,我们还可以有断路器,比如我们A服务调B服务的时候,B服务也调了,CC也掉了,DD也掉了E等等,突然呢,C服务出现了问题,或者呢,E服务出现了问题,导致我们下边呢,我们走不完,我们在这儿有一个漫长的等待,而我们可以引入断雾器,比我们B服务在几次调用失败以后,以后再来调用我们快速的响应失败。
02:00
哎啊,不让用户来做太多的等待,包括呢,我们也可以由服务网关我们来过滤请求,我们AB服务调用之前,我们可以先经过网关来过滤请求,包括呢服务的之间的这些配置,我们也可以使用分布式配置来做起来,比如说呢,基本上的解决方案我们spring cloud都有,Spring cloud更多详细的内容呢,大家可以关注上硅谷的鼓励学院,我们周阳老师给大家发布的spring cloud系列课程。我们呢,就来快速体验一下spring cloud的使用,我来创建一个工程,好,我们还是选择空工程,我们要创建多个项目,好,我们就叫spring boot06,我们来整合spring cloud。Finish。我们呢,主要给他创建三个模块,第一个呢,是我们的注册中心,哎,我们以前double的时候,我们用zoo kper做的,我们现在直接用cloud的卡好来一个model。
03:07
使用初始化向导。那就叫com.at硅谷好,第一个模块呢,那就是so,那这个注册中心的服务器好点一个N,那么我们这一块spring,我先选1512,我们需要整合spring cloud,由于我们要做注册中心,我们在cloud discovery里边来找到有server,选中它以后呢,来点击next,好,Finish,这是我们第一个模块,它用来做注册中心。我来写上。好,我们就在这块来写上。这个呢,是我们的注册中心。注册中心,那么我们接下来再来写第二个模块。来创建第二个模块,我们的服务提供者和服务的消费者,好,我们就叫com点硅谷,好,我们来写一个服务提供者provider,我们还以我们之前的ticket为例,来点击next,选中1512版本,注意我们服务提供者还是服务消费者,他们呢都是在注册中心里边的,所以说呢,我来选还是选择cloud discovery,不过注意我们这个服务提供者呢,他不是注册中心,他是给注册中心里边注册自己,或者呢,服务消费者是要从注册中心里边获取提供者,我们就来选中有瑞卡的咱们这个服务注册和发现这个模块,来选中以后点击next finish,这是我们这个服务提供者,那我们再来创建一个服务消费者。
04:56
好点,硅谷。我们就叫consumer,我们还是用户来,用户来买票,来点一个next,还是选中1512来到cloud discover里边,我们这个消费者呢,也要去注册中心来发现这些服务,好来来把它选中,点击next。
05:19
点击finish,那现在呢,写了三个模块,纽卡server是我们的注册中心,那么其他的服务要注册进来,我们就得先来启动注册中心,启动之前呢,来做一些简单配置。这个resource下边,好,我来写一个application,点压面啊,我们用压面作为配置文件,这样呢层次就更清晰了。配置什么呢?我来写一下第一个so port,我们服务的端口号,我写一个8761服务器应用8761启动,接下来呢,我们再来配置有瑞卡的一些信息,比如瑞instance host name,我有瑞卡主机的名字,我指定有瑞卡serve,来来注释一下。
06:04
这有瑞卡实例的主机名,好本来再来配置瑞卡客户端的一些信息,比如client client里边特别重要的一点呢,就是我们这个有一个叫register位置U卡,我们把它呢调成force,它的作用就是不把我们纽瑞卡本身在注册,在我们这个有瑞卡注册中心里边,否则呢,它把自己本身也要注册进去,我们不做高可用的情况下,我呢就把它指为force。它作用不将自己,不把自己注册到卡上。好,这是我们配置的第一个,第二个呢,我们写一个叫frenchnch registry,我们写一个false,它的作用呢,就是我们不从卡上来获取,不从。
07:00
纽约卡上来获取咱们这个服务的注册信息,哎,因为我们本身是一个注册中心,嗯,不是像那些消费者一样,我们要获取提供者一些信息,好,我们把它呢也置为false,默认他们都是处的,好我们再来写一个非常重要的叫service URL,这是来指定我们有瑞卡注册中心的地址的,其他服务就是要在这注册,我们可以不指定,它呢也有一个默认值,比我们来点进来这个默认值呢,这个service URL会注入一个map,而这个map呢,来点过来,来看这个map呢,默认会放一个default z跟default UR点过来default zone呢是这个KURL呢就是log host 8761,加上我们一个前缀等等,来我们还是自己来指定一下K呢,我们也用它。Service URL,好K呢是它值呢,我们自己也来指定成,哎,我们还是LOCAL8761,我们自己来加一个前缀啊,我们就叫牛瑞卡,然后呢,好,这是我们注册中心服务注册的地址,这个配置呢,我们就做完了,但是我们要启用我们这个注册中心,我们需要结合一个注解叫aable u server,这所以说呢,我们注册中心要启动它两步,第一步呢,配置我们这个U瑞卡相关的信息,第二步呢,就来配置U卡信息,第二步我们就来使用enable u卡server来启用我们注册中心的功能,那我们来启动这个注册中心来测试一下,好启动。
08:49
好,我们等待。哎,我们看到这个8761端口,诶已经运行了,来我们就在这来访问local host87618761回车,诶我们看到呢,这个界面就是有人卡注册中心的界面,注册中心呢,下面有一个叫当前注册,在有瑞卡里边的服务实例,但是呢,我们现在还没有把任何服务注册进来,那我们注册中心呢,就先启动起来。
我来说两句