所有分类
  • 所有分类
  • 未分类

Spring Cloud Eureka–关闭微服务后请求还会进来

简介

说明

关闭了微服务之后,请求实际还会进来。本文介绍为什么会出现这种现象以及如何解决这个问题。

概述

关闭了微服务之后,请求实际还会进来。所有服务的状态保存在注册中心,即 Eureka Server。

所有服务的状态保存在注册中心,即 Eureka Server。一个服务要想获取其他服务的实例列表和状态,需要通过 Eureka Client 定时从 Eureka Server 中获取并缓存下来,默认时间间隔是30秒。Eureka Client 和 Eureka Server 是通过 HTTP 协议通信,请求由 Eureka Client 发起,而不是基于长连接或者 Eureka Server 主动推送,所以无法立即知道其他服务状态变更。

影响1:网关还会调用本微服务

网关其实也是个微服务,也是从Eureka Server上获取微服务信息的,所以也会有延迟。

影响2:其他微服务还会调用本微服务

当其中一个服务实例重启时,服务调用方是无法第一时间知道的,所以还是会调用到这台暂时无法提供服务的实例上。这样会造成短暂的访问失败,这段时间也会对正在使用产品的用户造成一定的影响。

解决方案

见:SpringBoot项目–如何不停服更新应用? – 自学精灵

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录