Eureka服务停机速度慢,导致客服电话频繁响起报警吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1311个文字,预计阅读时间需要6分钟。
某年某月的一天,仿佛一张破碎的脸。错了,重来。某天,忽然发现大量告警,经过多次调试研究(此处省略3000字),发现是由于Eureka服务下线导致响应太慢,而大量请求堆积。
某年某月的某一天,就像一张破碎的脸。。。
错了,重来。
某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的请求打进来导致的报错。
于是,又经过了大量详细周密的考察和研究,终于找到了问题并且解决了(此处省略5000字)。
全文完。
... ...
好了,那是不可能的啦,怎么说也要意思一下写个300字凑个原创啊。
为啥服务都下线了还会有那么多的请求一直进来呢?
呐,我们都知道 Eureka 是 AP 模型,其实根本原因在于 Eureka 使用了三级缓存来保存服务的实例信息,如下图所示。
我们的服务注册的时候会和 server 保持一个心跳,这个心跳的时间是 30 秒,服务注册之后,客户端的实例信息保存到 Registry 服务注册表当中,注册表中的信息会立刻同步到 readWriteCacheMap 之中。
而客户端如果感知到这个服务,要从 readOnlyCacheMap 去读取,这个只读缓存需要 30 秒的时间去从 readWriteCacheMap 中同步。
客户端和 Ribbon 负载均衡 都保持一个本地缓存,都是 30 秒定时同步。
按照上面所说,我们来计算一下客户端感知到一个服务下线极端的情况需要多久。
本文共计1311个文字,预计阅读时间需要6分钟。
某年某月的一天,仿佛一张破碎的脸。错了,重来。某天,忽然发现大量告警,经过多次调试研究(此处省略3000字),发现是由于Eureka服务下线导致响应太慢,而大量请求堆积。
某年某月的某一天,就像一张破碎的脸。。。
错了,重来。
某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的请求打进来导致的报错。
于是,又经过了大量详细周密的考察和研究,终于找到了问题并且解决了(此处省略5000字)。
全文完。
... ...
好了,那是不可能的啦,怎么说也要意思一下写个300字凑个原创啊。
为啥服务都下线了还会有那么多的请求一直进来呢?
呐,我们都知道 Eureka 是 AP 模型,其实根本原因在于 Eureka 使用了三级缓存来保存服务的实例信息,如下图所示。
我们的服务注册的时候会和 server 保持一个心跳,这个心跳的时间是 30 秒,服务注册之后,客户端的实例信息保存到 Registry 服务注册表当中,注册表中的信息会立刻同步到 readWriteCacheMap 之中。
而客户端如果感知到这个服务,要从 readOnlyCacheMap 去读取,这个只读缓存需要 30 秒的时间去从 readWriteCacheMap 中同步。
客户端和 Ribbon 负载均衡 都保持一个本地缓存,都是 30 秒定时同步。
按照上面所说,我们来计算一下客户端感知到一个服务下线极端的情况需要多久。

