了解Eureka服务注册与发现。
Eureka分为Eureka Server和Eureka Client,以实现服务注册以及服务发现的功能。
当其是Eureka Server时,便是服务端,也叫服务注册中心,所有的客户端会向其注册。
注册中心的服务注册表中将会存储所有可用服务节点的信息,服务节点信息可以通过访问注册中心直观地查看。
当其是Eureka Client时,便是客户端,也叫实例,可以向注册中心将自己注册进去,也可以从注册中心获取其他实例的服务信息。
Eureka Client启动后,会向Eureka Server发送心跳进行服务续约,默认30s发送一次心跳,告诉Eureka Server“我还活着”,防止Eureka Server将它从服务注册表中移除。
如果Eureka Server在多个心跳周期(默认为90s)内没有接收到某个服务的心跳,便会从服务注册表中把相应的服务节点移除。
Eureka Client还具有缓存功能,即当Eureka Client注册到Eureka Server时,彼此会进行数据同步,也就是Eureka Client会缓存一份Eureka Server中的服务信息列表。
因为服务之间可以互相调用,所以Eureka Client分为两种角色,分别是服务提供者和服务消费者。
服务提供者通过向注册中心发送心跳进行服务续约,使得服务消费者能够通过从注册中心获取到的最新可用服务列表来调用相应的服务。很多情况下,Eureka Client既是服务提供者,供其他服务调用;同时也是服务消费者,通过调用其他服务实现业务功能。
当需要调用服务的时候,Eureka Client会从自己缓存的服务注册表中去检索对应的服务信息,当需要调用的服务不可用时才会从注册中心获取。
Eureka通过心跳检查和缓存更新机制,不仅可提高性能,也使系统具有高可用性。因为即便Eureka Server宕机,也依然可以利用缓存中的信息调用服务。