- 概述:Spring Cloud Eureka 是Spring Cloud Netflix 微服务套件中的一个部分,它是基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
- 服务治理是微服务架构中最为核心和基础的模块,主要用来实现各个微服务实例的自动化注册与发现。
- 服务注册
在服务治理框架中,通常会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织服务清单。
eg: 我们提供服务A,分别运行在172.1.1.1:8080 和172.1.1.2:8080 位置上
服务B,分别运行在172.1.1.3:9090/172.1.1.2:9090/172.1.1.1:9090 位置上,那么服务注册中心就会维护如下的一张服务清单
服务名 | 位置 |
---|---|
服务A | 172.1.1.1:8080 /172.1.1.2:8080 |
服务B | 172.1.1.3:9090/172.1.1.2:9090/172.1.1.1:9090 |
如果有新的服务加入进来,会在服务清单中自动添加并维护;
如果有服务宕机或其他原因不可用,注册中心会通过心跳检测自动剔除不可用的服务。
- 服务发现
##由于在服务治理框架下运行,服务间的调用不再通过指定具体的实例地址来实现,而是通过向服务名发起请求调用实现。所以,服务调用方在调用服务提供方接口的时候,并不知道具体的服务实例位置。因此,服务调用方需要向服务注册中心咨询服务,注册中心会根据调用方需要的服务返回一个服务清单给服务调用方。
##eg: 服务C需要调用服务A,服务C就会向注册中心发起咨询服务请求,服务注册中心就会将服务A的位置清单返回给服务C。服务C要发起调用的时候,就会从位置清单中以某种轮询策略取出一个位置来进行服务调用,这涉及到客户端负载均衡。