Eureka注册中心是入门Spring Cloud微服务架构的必学组件,是学习所有其他组件的基础和基石。
Eureka介绍
Eureka,这里是 Spring Cloud Eureka 的简称,是 Spring Cloud Netflix 组件之一。 包含服务治理(Eureka)包括服务注册、服务发现和服务检测监控等。
Eureka基本规则
服务启动时会生成服务的基本信息对象InstanceInfo,然后在启动时会register到服务治理中心。
注册完成后会从服务治理中心拉取所有的服务信息,缓存在本地。
之后服务会被30s(可配置)发送一个心跳信息,续约服务。
如果服务治理中心在90s内没有收到一个服务的续约,就会认为服务已经挂了,会把服务注册信息删掉。
服务停止前,服务会主动发送一个停止请求,服务治理中心会删除这个服务的信息。
如果Eureka Server收到的心跳包不足正常值的85%(可配置)就会进入自我保护模式,在这种模式下,Eureka Server不会删除任何服务信息。
Eureka架构图
服务的注册发现
服务发现:
服务注册/反注册:保存服务提供者和服务调用者的信息
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能服务路由(可选):具有筛选整合服务提供者的能力。
服务配置(不包括其它无关配置):
配置订阅:服务提供者和服务调用者订阅微服务相关的配置配置下发(可选):主动将配置推送给服务提供者和服务调用者
服务健康检测
检测服务提供者的健康情况
调用关系说明:
服务容器负责启动,加载,运行服务提供者。
服务提供者在启动时,向注册中心注册自己提供的服务。
服务消费者在启动时,向注册中心订阅自己所需的服务。
注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。