目录
一、Eureka 是什么
Eureka是一个服务治理组件,主要包括服务注册和服务发现,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移。在Spring Cloud微服务架构中,Eureka通常用作注册中心。Eureka采用了C-S(客户端/服务端)的设计架构,由两个组件组成:Eureka服务端和Eureka客户端。
二、Eureka 的优势
Eureka的优势有以下几点:
在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程;客户端请求会自动切换到新的Eureka节点;当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中;而对于它来说,所有要做的无非是同步一些新的服务注册信息而已。所以,再也不用担心有“掉队”的服务器恢复以后,会从Eureka服务器集群中剔除出去的风险了。
Eureka甚至被设计用来应付范围更广的网络分割故障,并实现“0”宕机维护需求。这样一来,就可以实现在同一个子网中(same side of partition),新发布的服务仍然可以被发现与访问。
三、Eureka 生产者
Eureka生产者是指将服务注册到Eureka的服务提供者。在Spring Cloud微服务架构中,服务提供者启动时会向Eureka注册中心注册自己提供的服务,服务消费者在启动时会向Eureka注册中心订阅自己所需的服务,注册中心返回服务提供者地址给消费者,服务消费者从提供者地址中调用服务。
四、Eureka 消费者
Eureka消费者是用于发现服务和消费服务的。它通过Eureka Client完成服务发现,通过Ribbon完成服务消费,以实现负载均衡。在实际项目中,一个服务往往同时是服务消费者与服务提供者,所以都需要注册到注册中心统一管理。
Eureka的生产者和消费者是通过Spring Cloud框架进行高效装载的。
对于生产者,它使用Spring Boot启动时默认集成的Eureka Client将自己注册到Eureka Server,而Eureka Server则负责将服务注册信息同步到各个节点,从而完成服务的注册与发现。
对于消费者,它使用Spring Cloud的Eureka Client进行服务发现,然后使用Ribbon进行负载均衡和服务调用。当服务消费者启动时,它会向Eureka Server发送请求获取服务注册表,获取到服务提供者的地址后,消费者就可以直接调用提供者的服务了。
在Spring Cloud中,Eureka的生产者和消费者都是通过配置文件进行相关配置的,如设置Eureka Server的地址、端口等信息。同时,为了提高服务的可用性和稳定性,Spring Cloud还提供了其他一些组件,如Hystrix、Feign等,可以与Eureka配合使用,实现熔断、限流、负载均衡等功能。