Eureka:
所有的微服务在启动的时候都会向Eureka注册自己的信息,包括服务名称,ip,端口号等,并且每隔30秒会向Eureka发送一次心跳,如果某个时间Eureka突然检测不到某个微服务的心跳,就表示这个微服务可能出现问题挂掉了,Eureka就会把这个微服务从列表中剔除掉。
其他的微服务想要调取这个微服务时需要使用服务名称去Eureka的服务列表中查找,看是否有所需要的微服务。当然,微服务一般都会做成集群,也就是同样的为微服务会有多个,所以可以采用负载均衡算法,比如轮询,权重,最小并发等算法,从Eureka的列表中获取一个所需要的微服务,然后想这个微服务发起远程调用。
总结:
Eureka分为服务端与客户端,客户端又分为生产者和消费者。
服务端就负责保存各个微服务之间的信息,并且监控心跳。
客户端负责发送心跳,提供自己的信息,基于服务列表使用负载均衡算法选择一个微服务发起远程调用。