1.什么是Eureka
Eureka是Netflix的子模块之一,用于实现服务注册与发现,是微服务架构中最核心和基础的模块。Eureka由两部分组成:一个是EurekaServer(服务提供者),用于定位服务以实现中间层服务器的负载均衡和故障转移;另一个是EurekaClient(服务消费者),用于与服务提供者进行交互,并通过服务标识符去获取服务。
2.Eureka有什么作用
我们使用微服务,微服务的本质还是各种API接口的调用,我们怎么产生这些接口?产生的这些接口又如何调用?又如何进行管理?
那就是Eureka的作用。我们可以将自己定义的API接口(在这里可以理解为我们写的服务提供者和服务消费者)注册到Eureka上,Eureka负责服务的注册与发现,构成Eureka体系包括:服务注册中心、服务提供者、服务消费者。
3.Eureka的工作内容
下图是来自Eureka官方的基于集群配置的架构图:
处于不同节点的Eureka Server通过Replicate进行数据同步;
Application Service为服务提供者,向Eureka Server注册、服务同步、服务续约等;
Application Client为服务消费者,可以向Eureka Server获取服务实例列表、服务调用、服务续约、服务下线等;
Make Remote Call完成一次服务调用。
4.服务治理机制
服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。
当服务注册中心Eureka Server检测到服务提供者因为宕机、网络原因不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。
服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务是可用状态。Eureka Server在一定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。
感谢大神的分享,附上原文链接:https://blog.csdn.net/hzygcs/article/details/86541583