为什么要用Eureka
A、Eureka用来管理微服务的信息。实现了服务治理的功能。
B、注册中心帮助我们管理微服务的IP和端口。
C、微服务会实时上报自己的状态,注册中心统一管理微服务的状态,将存在问题的服务踢出服务列表,客户端获取到可用的服务进行调用。
D、老式的系统(非微服务)都是写死的URL进行调用,但是微服务的配置直接配置调用服务的IP和服务名即可。
(非微服务)
(微服务)
注册服务,服务请求的过程
A、Eureka提供客户端(Eureka Client)和服务端(Eureka Server)。
client:向eureka的注册与发现。
server:服务注册中心。管理服务。
B、注册服务:
Eureka客户端向Eureka服务端进行注册,注册成功的话,会返回给Eureka客户端一个true正确的信息。
C、服务请求:
Eureka客户端向Eureka服务端发送一个CURL请求,Eureka服务端会向Eureka客户端返回一个ConcurrentHashMap<String,DoMain>,(map的key是指:注册的服务名,即需要调用的服务名。value是指:实体类,即将要调用的服务的实体类,里面包含客户端的IP等信息)。
一个服务挂掉之后为什么会消失呢
在Eureka客户端这边会引入一个jar包(Eureka_jar),里面会有一个定时任务(心跳机制),会每隔30秒发送一次请求。
在Eureka服务端,也会有一个定时任务(健康检查),每隔90秒发送一次请求。
如果Eureka服务端向Eureka客户端发送请求的时候,没回应,Eureka服务端就会把Eureka客户端当做死掉的,将客户端剔除。
与ConcurrentHashMap的关联
Eureka服务端底层使用ConcurrentHashMap返回给客户端要进行调用的服务的信息。
心跳机制,健康检查
A、心跳机制:Eureka客户端向服务端发送请求,证明“自己”还存活,不要剔除。
B、健康检查:Eureka服务端会当时请求一下客户端,看下客户端是否存活。不存活就将其剔除。