Spring Cloud Eureka 是 Spring Cloud Netflix微服务套件中的一部分,基于netflix eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
服务治理:
服务治理可以说是微服务架构中最为核心和基础的模块,它主要实现各个微服务实例的自动化注册与发现。
为什么需要服务治理,没有它又会怎样呢?
在系统构建前期,服务数量较少我们可以通过一些静态配置来完成服务的调用。
比如有两个服务A和B 其中服务A需要调用服务B来完成一个业务操作时,为了提高B的性能或高可用我们会为B启动多个实例,这样我们就需要手动维护B的具体实例清单。
随着我们的系统越来越大服务越来越多上述工作会变得繁重且繁琐越来越难以维护。
微服务应用实例的自动化管理主要围绕着服务注册和服务发现两个概念展开。
服务注册:
在服务治理框架中通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口、版本号等告知注册中心,注册中心按照服务名分类组织服务清单。
比如我们有两个提供A服务的进程分别运行在10.237.43.1:080 和 10.237.43.2:8080当进程启动时注册中心就会维护类似这样一份清单。
服务名称 位置
服务A 10.237.43.1:8080 、10.237.43.2:8080
服务发现:
由于服务注册中心的存在,服务间的调用通过服务名向服务实例发起请求。所以服务调用方在进行服务调用时并不知道服务的具体位置。
因此,调用方需要向服务中心获取被调用服务的具体清单。如服务B想要调用上述服务A,服务B会向服务注册中心请求A的具体清单,10.237.43.1:8080 和 10.237.43.2:8080
当B要发起调用时,便从清单中以某种轮询策略取出一个位置来进行服务调用。
Eureka分为服务端和客户端
服务端我们也称之为服务注册中心,而客户端主要完成服务的注册与发现。