现在的位置: 首页 > 云计算 > 正文

什么是Spring Cloud

2020年02月12日 云计算 ⁄ 共 2943字 ⁄ 字号 评论关闭

  ​Spring cloud是框架的有序集合。它利用spring boot的开发便利性,巧妙地简化了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等分布式系统基础设施的开发。,所有这些都可以使用spring boot的开发风格一键启动和部署。

  什么是Spring Cloud

  构建分布式系统不需要复杂且容易出错。Spring cloud为最常见的分布式系统模式提供了一个简单且可接受的编程模型,它帮助开发人员构建弹性、可靠和协调的应用程序。Spring cloud是在Spring boot的基础上构建的,这使得开发人员很容易启动并快速应用到生产中。

  据我所知,Spring cloud是微服务系统架构的一站式解决方案。在构建微服务的过程中,我们需要做服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等操作,spring cloud提供了一套简单的编程模型,使我们能够在此基础上在spring中启动,我们可以轻松地构建微服务项目。

  spring cloud的版本号不是我们通常看到的版本号,而是一些非常奇怪的词。这些词是伦敦地铁站的站名。同时,根据字母顺序,版本时间顺序是对应的。例如,最早的版本,天使,第二个版本,布里克斯顿,然后卡姆登,达尔斯顿,埃德加,芬奇利,格林威治,霍克斯顿。

  Eureka:spring云的服务发现框架

  Eureka是基于rest(representative state transition)的服务,主要用于在AWS云中定位服务,实现中间层的负载均衡和服务器故障转移。我们称这项服务为Eureka服务器。Eureka还附带了一个基于Java的客户端组件Eureka client,这使得与服务的交互更加容易。客户机还有一个内置的负载平衡器,它执行基本的循环负载平衡。在Netflix中,更复杂的负载均衡器封装了EURKA,以提供基于流量、资源使用、错误条件等各种因素的加权负载平衡,以提供极好的灵活性。

  总之,Eureka是一个服务发现框架。什么是服务,什么是发现?

  以生活为例,我们通常租房子找中介。

  在没有中介的情况下,我们需要一个房东来了解是否有房子出租,这显然会非常辛苦。一旦你寻找一个人的能力,你就找不到很多房子供你选择。而且,你不想再这样下去了(过了这么久,你只能做没有合适的)。在这里,我们相当于微服务的消费者,而那些房东相当于微服务的提供者。消费者需要调用提供商提供的一些服务,就像我们现在需要租用他们的房子一样。

  但如果只是在房客和房东之间,他们的效率是很低的。房东找不到房客赚钱,房客找不到房东住。因此,后来房东一定想过广播自己的房子信息(比如在街上贴一个小广告),这样房东就完成了任务(出版房子),但存在两个问题。首先,其他非租户可以接收到这种租赁信息,这在现实世界中并不算什么,但在计算机世界中会出现资源消耗的问题。其次,房客还是很难找到你。想象一下,我需要租一所房子,我需要一个接一个地,东找西找街道广告?

  我们该怎么办?当然,我们不会那么傻。第一次是找中介。它为我们提供了一个统一的房源。我们的消费者只需要找到它。而对于房东来说,他们只需要公布他们在中介公司的名单。

  但也存在一些问题:

  如果房东登记后不想卖房子怎么办?我们需要让房东定期续约吗?如果房东不续约,我们是否需要把他们从中介的登记名单上删除。

  房客也需要登记吗?否则,乙方如何才能签订合同?

  中介能成为连锁店吗?如果本店因不可抗力因素不能使用,我们可以换另一家连锁店吗?

  好的,在这个例子之后,让我们看看Eureka的一些基本概念。你会发现这是多么容易理解。

  服务发现:事实上,它是一个“中介”。在整个过程中有三个角色:服务提供者(房屋出租人)、服务消费者(承租人)、服务中介(房屋中介)。

  服务提供者:提供一些可以自己执行的服务给外界。

  服务消费者:需要使用某些服务的用户。

  服务中介:事实上,它是服务提供者和服务消费者之间的“桥梁”。服务提供者可以向服务中介注册自己。如果服务使用者需要使用某些服务(使用某些功能),他或她可以找到在服务中介中注册的服务提供者。

  服务注册登记:

  官方解释:当Eureka客户端注册到Eureka服务器时,它提供自己的元数据,如IP地址、端口、健康指示器URL、主页等。

  结合中介的理解:房东(提供商Eureka客户端提供商)在中介(服务器Eureka服务器)注册房屋信息,如面积、价格、位置等(元数据)。

  服务更新:

  Eureka客户将每隔30秒发送一次心跳(默认情况下)以续订合同。通知尤里卡服务器,Eurka客户仍然存在,通过更新合同,没有问题。在正常情况下,如果Eureka服务器在90秒内没有收到Eureka客户端的更新,它将从其注册表中删除该实例。

  结合中介的理解:房东(提供商尤里卡客户端提供商)定期告诉中介(服务器尤里卡服务器)我的房子还在租(续租),中介(服务器尤里卡服务器)收到房子信息后继续保留。

  获取注册表列表信息获取注册表:

  Eureka客户端从服务器获取注册表信息并在本地缓存。客户机使用此信息来查找用于远程调用的其他服务。注册列表信息会定期更新(每30秒一次)。每次返回的注册列表信息可能不同于由Eureka客户端自动处理的Eureka客户端的缓存信息。如果由于某种原因无法及时匹配注册列表信息,则Eureka客户端将再次检索整个注册信息。Eureka服务器缓存注册列表信息。整个注册表和每个应用程序的信息都被压缩。压缩的内容与未压缩的内容完全相同。Eureka客户端和Eureka服务器可以使用JSON/XML格式进行通信。默认情况下,Eureka客户机使用压缩JSON格式来获取有关注册列表的信息。

  结合中介了解:租户(消费者尤里卡客户端消费者)到中介(服务器尤里卡服务器)获取所有房屋信息列表(客户端列表尤里卡客户端列表),租户定期从中介(服务器尤里卡服务器)获取并更新本地列表,以获取最新的信息。

  服务脱机取消:

  官方解释:当程序关闭时,Eureka客户端向Eureka服务器发送取消请求。发送请求后,将从服务器的实例注册表中删除客户端实例信息。脱机请求将不会自动完成。它需要调用以下命令:discoverymanager。获取实例()。关闭组件();

  结合中介的理解:房东(提供商Eureka客户端提供商)告诉中介(服务器Eureka服务器)我的房子不是租的。中介之后,登记的房屋信息将从名单中删除。

  服务拒绝:

  官方解释:默认情况下,当Eureka客户端向Eureka服务器发送服务续费失败90秒(三个续费周期)时,即heartbeat,Eureka服务器会从服务注册列表中删除服务实例,即服务拒绝。

  结合中介的理解:房东(提供商尤里卡客户提供商)会定期联系中介(服务器尤里卡服务器)告诉他我的房子还在租(续租)。如果中介(服务器Eureka server)很长一段时间没有从提供者那里收到信息,中介将删除其房屋信息(服务除外)。

  当然,有许多组件可以用作服务发现:zookeeper、consul、Eureka等。

抱歉!评论已关闭.