Eureka

  • Eureka服务中心:

    • Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址

    • 提供者:启动后向 Eureka 注册自己信息(地址,提供什么服务)

    • 消费者:向 Eureka 订阅服务,Eureka 会将对应服务的所有提供者地址列表发送给消费者, 并且定期更新

    • 心跳(续约):提供者定期通过 http 方式向 Eureka 刷新自己的状态

  • 简述什么是 CAP,并说明 Eureka 包含 CAP 中的哪些?

    • CAP理论:一个分布式系统不可能同时满足C (一致性),A(可用性),P(分区容错性).由于分区 容错性 P 在分布式系统中是必须要保证的,因此我们只能从 A 和 C 中进行权衡.

    • Eureka 遵守 AP

      • Eureka 各个节点都是平等的,几个节点挂掉不会影响正常节点的工作

      • Eureka 的客户端在向某个 Eureka 注册或查询是如果发现连接失败,则会自动切换至其他 节点

      • 只要有一台 Eureka 还在,就能保证注册服务可用(保证可用性),只不过查的信息可能不最新的

  • 客户端启动时如何注册到服务端?

    • Eureka客户端在启动时,首先会创建一个心跳的定时任务,定时向服务端发送心跳信息,服务端会对客户端心跳做出响应,如果响应状态码为404时,表示服务端没有该客户端的服务信息,那么客户端则会向服务端发送注册请求,注册信息包括服务名、ip、端口、唯一实例ID等信息。

  • 服务端如何保存客户端服务信息?

    • 客户端信息放在一个ConcurrentHashMap对象中

  • 客户端如何拉取服务端已保存的服务信息(是需要使用的时候再去拉取,还是先拉取保存本地,使用的时候直接从本地获取)?

    • 客户端拉取服务端服务信息是通过一个定时任务定时拉取的,每次拉取后刷新本地已保存的信息,需要使用时直接从本地直接获取。

  • 如何构建高可用的Eureka集群?

    • 在注册中心的配置文件中配置其他注册中心的地址

  • 什么是服务续约

    • 在注册服务完成以后,服务提供者会维持一个心跳(每30s定时向EurekaServer 分发起请求)告诉EurekaServer "我还活着"

  • 什么是失效剔除

    • 有时候,我们的服务提供方并不一定是正常下线,可能是内存溢出,网络故障等原因导致服务无法正常工作.EurekaServer会将这些失效的服务剔除服务列表.因此它会开启一个定时任务.每隔60秒会对失效的服务进行一次剔除

你可能感兴趣的:(eureka,java,spring,cloud)