面试题答案
一键面试Eureka主要作用
- 服务注册:各个微服务启动时,会将自身的信息(如服务名称、IP地址、端口等)注册到Eureka Server,使得Eureka Server能够维护一个服务实例列表。这样,新的服务可以方便地加入到系统中,而无需手动配置大量信息。
- 服务发现:其他微服务在调用目标服务时,并不需要知道目标服务具体的物理位置,只需要从Eureka Server获取目标服务的实例列表,就可以进行服务调用。这大大简化了服务间调用的复杂度,增强了系统的可维护性和可扩展性。
- 服务健康检查:Eureka Server会定时与各个服务实例进行心跳检测,若某个服务实例在一定时间内没有响应心跳,Eureka Server会将其从服务列表中剔除,从而保证服务列表中的服务都是健康可用的,提高了整个系统的稳定性。
实现服务注册与发现原理
- 服务注册原理
- 服务端:Eureka Server启动后,会创建一个注册表,用于存储各个服务实例的信息。
- 客户端:微服务在启动过程中,会通过Eureka Client向Eureka Server发送注册请求,请求中包含服务实例的元数据(如服务名、IP、端口等)。Eureka Server接收到注册请求后,将服务实例信息添加到注册表中,并向该服务实例发送一个ACK响应,表明注册成功。
- 服务发现原理
- 客户端:当一个微服务需要调用另一个微服务时,它会通过Eureka Client向Eureka Server发起获取服务实例列表的请求。
- 服务端:Eureka Server接收到请求后,从注册表中查询对应的服务实例列表,并返回给Eureka Client。Eureka Client在本地缓存获取到的服务实例列表,这样后续的服务调用就可以直接从本地缓存中获取服务实例信息,减少对Eureka Server的请求压力。同时,Eureka Client会定时从Eureka Server更新服务实例列表,以保证缓存中的信息是最新的。