微服务组件之Eureka

基本介绍

Eureka入门

springboot-eureka URL

组件名 语言 CAP 一致性算法 服务健康检查 对外暴露接口
Eureka Java AP 可配支持 HTTP
Consul Go CP Raft 支持 HTTP/DNS
Zookeeper Java CP Paxos 支持 客户端
Nacos Java AP Raft 支持 HTTP

Eureka包含两个组件:Eureka Server 和 Eureka Client,它们的作用如下:

Eureka Client是一个Java客户端,用于简化与Eureka Server的交互;Eureka Server提供服务发现的能力,各个微服务启动时,会通过Eureka Client向Eureka Server进行注册自己的信息(例如网络信息),Eureka Server会存储该服务的信息;
微服务启动后,会周期性地向Eureka Server发送心跳(默认周期为30秒)以续约自己的信息。如果Eureka Server在一定时间内没有接收到某个微服务节点的心跳,Eureka Server将会注销该微服务节点(默认90秒);
每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复制的方式完成服务注册表的同步;
Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。
综上,Eureka通过心跳检测、健康检查和客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。

注册中心服务器 eureka-server

服务提供者(A/B/C) 高可用

  • 注册同一个名字即可实现高可用

服务消费者

负载均衡

如果服务名一样 消费者调用该服务名是会负载

实现原理

  1. EurekaAutoServiceRegistration 实现 Lifecycle 在finishRefresh调用
  2. getLifecycleProcessor().onRefresh();

源码分析

源码分析

  • EurekaClientAutoConfiguration
  • CloudEurekaClient
posted @ 2022-05-08 22:37  AlbertXe  阅读(50)  评论(0编辑  收藏  举报