引言
Eureka 是SpringCloud全家桶中重要的组件之一,是Netflix公司开源的一款用于提供服务注册和发现的中间件,而SpringCloud则基于Netfilx开源做了进一步封装
Eureka官方介绍
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.
Eureka 是一个基于 REST 的服务,主要在 AWS 云中使用, 定位服务来进行中间层服务器的负载均衡和故障转移。
基于REST意味着可以使用非Java语言和注册中心交互,包括注册,续约,获取等,利用Http请求即可完成
Eureka主要由两部分组成,Eureka Client 和Eureka Server
基于CS架构设计,Eureka Server充当服务注册中心,提供给Eureka Client 注册,续约,服务发现等功能,其他微服务则作为Eureka Server的客户端
注册发现
为什么需要注册中心
随着微服务的盛行,服务和服务之间的调用不可能采用硬编码的方式写在各个服务的代码里,而且各个微服务的IP也可能会发生变化,所以就需要有一种可以动态发现服务的机制,可以忽略掉微服务的真实IP地址,通过采用服务名的方式进行服务之间的调用,这就是注册中心存在的理由
客户端负载
说到注册中心,这里简单提一下客户端负载,比如A服务通过fetch拿到了整个注册中心的所有服务的信息列表,A需要调用B服务,而B服务在列表中有两个节点信息,这个时候A服务在调用B之前需要自己做以下负载均衡,这就是所谓的客户端负载均衡,SpringCloud Ribbon组件就是负责客户端负载均衡的
总结
后续会通过源码去拨开Eureka的神秘面纱