SpringCloud核心组件
Eureka:注册服务中心
Feign: 任务调度,执行http请求
Ribbon: 负载均衡 根据本地注册表选择合适机器,让Feign调用
Zuul / SpringCloud Gatway : 网关 网关内部配置好接口地址,外部用户只需访问网关,对系统内部具体接口地址不暴露。 其他作用: 灰度发布,统一熔断,统一限流, 请求授权认证
核心架构原理
网关作用: 灰度发布, 统一熔断, 统一限流, 请求授权认证
Eureka服务注册中心原理图
服务变更后先更新服务注册表,
再更新ReadWrite缓存,
后台有一个线程定时将ReadWrite缓存同步到ReadOnly缓存,
所有服务都定时主动去ReadOnly缓存拉取服务注册表到本地,
整个过程延迟很高,当一个服务发生新的变动到其他所有服务本地注册表发现变动会有很长时间(一波三折)
Eureka集群部署
peer-to-peer 模式 所有机器地位平等
每台机器服务变化会通知所有机器
Eureka采用 AP原则保证高可用性, 一旦一个机器还没来得及把最新变化同步出去就挂了,其他机器也是可用的,即时并没感知到新的变化,直到心跳等机制 重新感知变化并同步到每台机器。