关于 Spring Cloud ,你不得不了解的三个知识点
作者简介:尹吉欢,资深 Java 技术专家。本文选自:本文选自:拉勾教育专栏《300分钟搞懂 Spring Cloud》
你好,我是你的缓存课老师尹吉欢,欢迎进入第 2 课时“服务治理-Eureka”的学习。
本课时的主要内容包括:服务注册、服务发现、服务注册与服务发现相关动作,以及服务注册与服务发现解决的问题,和服务治理-Eureka。
服务注册服务注册与服务发现是微服务架构的核心功能,Eureka 则是 Spring Cloud 中负责服务注册与服务发现的组件,在学习 Eureka 之前,你需要了解什么是服务注册?什么是服务发现?只有了解了服务注册与服务发现的原理才能更好地理解 Eureka 的使用和设计原理。
本文选自:拉勾教育专栏《300分钟搞懂 Spring Cloud》
注册中心在介绍服务注册的概念前,我们先来了解什么是注册中心。
为了方便理解,你可以将注册中心拆解成两个词,分别是注册和中心。注册很好理解,比如我们的用户注册,就是将自己的信息注册在某个平台上。再来看中心这个词,可以理解成一个统一管理的平台。两个词连起来就是注册中心,也就是统一管理所有的注册信息。
服务注册指的是服务在启动的时候将自身的信息注册到注册中心,方便进行统一管理。服务注册是客户端向注册中心提交信息的动作。
你现在看到的这张图,就是服务注册的过程。图中最上面的是我们的注册中心,下面的客户端是我们的应用程序,服务注册就是我们的程序在启动之后会将自身的信息往注册中心进行注册的过程,服务注册后注册中心就有了所有程序的信息。
服务注册的场景在我们日常工作中非常常见,以电商的业务场景为例,我们有订单和商品两个服务,创建订单的时候,订单服务会调用商品服务的接口来校验商品的价格信息等是否正确。订单服务要跟商品服务进行交互,就必须知道商品服务的地址信息,当商品服务只部署一个节点时,你可以直接通过 IP + 端口的方式进行访问。
当商品服务部署了三个节点,你可以通过域名进行访问,通过 Nginx 进行转发。当商品服务部署了上百个节点时,每增加一个节点都需要修改 Nginx 的配置文件。如果此时我们引入了注册中心,就可以将应用的信息告诉注册中心,通过注册中心来全局管理服务的节点信息。
服务发现了解了服务注册后,我们接下来学习服务发现的内容。
服务发现指的是从注册中心获取对应服务的信息。服务发现是客户端向注册中心获取信息的动作。
你现在看到的这张图,就是服务发现的过程。每个客户端都会从注册中心拉取自己关注的信息到本地。
还是上面提到的那个场景,商品服务的信息注册到注册中心,订单服务该怎么获取商品服务的信息呢,我想你应该想到了,就是从注册中心拉取商品服务的信息。
只有将商品服务的节点信息拉取过来,才可以跟商品服务进行交互,这就是服务发现的场景,简单的理解服务发现就是从注册中心获取对应的信息,获取之后需要做什么业务处理,跟注册中心无关,注册中心只提供信息。
本文选自:拉勾教育专栏《300分钟搞懂 Spring Cloud》
服务注册与服务发现相关动作服务注册与服务发现并不仅仅只有注册和拉取这两个动作,还有一些其他相关的动作。我们现在来对这些动作进行统一的讲解。
你看到的这张图涉及服务注册与服务发现,以及它们间的相关动作,最上面的是注册中心,用来集中存储管理服务信息。
图中右下方是服务提供者,通过 API 供其他方调用服务。
图中左下方是服务消费者,需要调用其他方的 API 获取服务。
无论是服务提供者还是服务消费者,都会将信息注册到注册中心进行统一管理。
服务消费者需要知道服务提供者的信息,比如 IP、 端口等信息,才能发起远程调用,所以需要通过拉取的动作从注册中心拉取对应服务的信息,并发起调用。
当我们的服务提供者出现故障后,这个时候是无法提供服务的,如果此时服务提供者留在注册中心的状态还是正常就会导致服务消费者调用失败。
那么注册中心如何知道其他服务是否健康呢,这个时候就需要有一个心跳的动作,心跳就是健康汇报,定时跟注册中心打招呼,告诉注册中心,Hi, 哥们,我还活着。
当一定时间内无心跳产生,则证明服务可能出现故障,无法汇报健康状态,注册中心就会剔除无效的服务信息。
总结下来,如果需要实现完整的服务注册与服务发现的功能,我们需要有注册中心来统一存储和管理服务信息,应用程序需要将自身的信息注册到注册中心,也就是我们的服务提供者和服务消费者的信息。整个过程包含的操作有注册,拉取,心跳,剔除等动作。
当面试官问你什么是服务注册与发现,我想你应该知道怎么回答了。
下一课时我将分享“客户端负载均衡-Ribbon ”,记得按时来听课哈。
本文选自:拉勾教育专栏《300分钟搞懂 Spring Cloud》关注我的公号:IT技术思维,回复:123,可以免费获得大厂面试真题哦~
版权声明:本文版权归属拉勾教育及该专栏作者,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表,违者必究。


