00:00
好,前面呢,我们看了一些double的基本配置,接下来我们说一下常见的一些高可用场景,所谓的高可用就是在分布式系统里边,我们可以通过一些设计或者一些架构,我们能减少我们系统不能提供服务的时间,哎,也就是说哎,保证我们系统啊每天都能77乘24小时不间断提供服务。好,那我们先来看高考用场景的第一个zoo keepper宕机,我们的注册中心呢,目前是用zoo keepper来做的,万一我们注册中心的这个服务器挂掉,那我们怎么办呢?那可以先来看一下正常,那现在呢,Zoo keepper服务器在这是启动起来的,然后呢,我们这个控制台管理控制台也是可以连上注册中心,包括在系统管理里边这一个系统状态注册中心呢,是一切正常的好,那接下来呢,我们就在正常的情况下,我们先来。
01:01
移动服务的提供者走。然后呢,我们再来启动服务的消费者。走,我们来测试呢,消费者来调用提供者的服务。消费者呢,在8081端口启动,那我们就来访问local host8081,诶以前呢,有一个方法叫初始化订单,好他呢,访问成了我们这个服务提供者提供的服务,包括我们这个。啊,注册中心的这个控制台,那现在也能看到我们这一块有消费者两个提供者一个,那这个分别呢,是我们user service provider提供者和我们这个,那现在呢。如果我们注册中心挂掉,我把这个注册中心直接关掉,那这种情况呢,我们来看系统状态,注册中心是连接不上的,那此时我们还能不能调用呢?我来刷新,哎,我们会发现啊,这个调用是依然成功的,为什么呢?这就是我们说的注册中心你及时当掉啊,由于我们这个服务提供者和服务消费者之间啊,是由本地缓存的,比如说消费者啊,他已经调过一次提供者,提供者在哪台机器,以这些方法的详细信息,消费者有缓存,注册中心当掉以后呢,它可以通过本地的缓存知道我们将要调的这个提供者所在的位置,可以不找注册中心要了,包括呢,其他是一样的,比如我们这些监控中心,我们当掉了也不会影响使用,它只是一些信息统计用的,包括我们注册中心集群。
02:49
如果我们注册中心是十几台zoo keep同时工作,有一台挂掉以后,它会自动切换到另外一台,等全部挂掉以后,我们还能通过本地通讯啊,本地的这个缓存来进行通讯。其实呢,我们仔细回想,注册中心的作用是什么呢?它不外乎就是来保存我们服务提供者啊所在的这些位置信息的,而我们呢,其实可以完全绕过注册中心,我们也可以使用第二种方案叫打保直联,要说呢,我们即使没有注册中心,我们整个打保调用也是没问题的。那double直连怎么做呢?我们可以给大家测试一下,原来的这个order service的调用,我们就把它停了,由于更重侧重心断了,它就无限次重试。好,那接下来呢,我们就在这来做一个简单的配置。
03:43
我们呢,这是reference引用user service,那把这个引用呢,它直接有一个属性配置,属性配置呢,它叫URL,我能直接来指定我们的这个ul地址在哪里,那我们就来指定上,它呢是127.0.0.1,然后呢,我们把端口号叫2088几呢,来看一下我们之前注册的这些服务。
04:13
我们的这个提供者啊,所在的服是20882,好,我们写上20882,这样呢,我们是直接连向它是绕过注册中心的,我们来重新启动测试,看能不能调走。好,我们在这个呢,在8081端口启动起来,我们重新呢,在这来调用刷新来,我们发现呢也是可以调用的,但是呢,我们这种方式是采用直连,哎,我们直接告诉他user service所在的机器地址。就是说这两个概念呢,一般面试问的非常多啊,他们会问我们这个zoo keepper宕机了,我们消费者能不能提供者的服务呢?答案是肯定的能啊,因为我们有本地缓存,包括呢,没有注册中心,能不能调服务呢?也能,我们可以使用double指连的方式。
我来说两句