公司内部很多rpc调用都需要经过gateway 是为了保护后端 这里有两个常见的操作 一个是熔断一个是限流。gateway还能实现很多比如服务的黑名单白名单 防止攻击 灰度控制等等。这里主要就是介绍熔断和限流。
什么是熔断? 其实熔断这个词不仅仅是在计算机领域会出现,在很多地方都有熔断的概念,熔断是为了保护后端,比如说我们当前有两个服务一个是qq群音频通话服务 一个是qq群服务,这两个服务都是由qq本身这个大服务来调用的,当我们想要进行qq群聊天的时候 就会调用qq群相关服务,当我们先要在群里进行音频通话的时候就由qq群这个微服务来调用qq音频通话这个微服务,但是当我们的qq音频通话服务挂掉之后,qq群微服务就不能够调用他了,这样导致qq群这个服务也积攒了大量未处理的请求导致这个服务也挂掉了,甚至一连串影响下去整个服务都挂掉,这时候熔断机制就要上场了,熔断机制就和我们家里的保险丝一样,不过这里断掉的是某一个特定服务器的调用,一般来说网关里都有熔断器。当熔断器开启之后,网关就把某个调用命令给过滤掉了,调用指令走不到后端服务,熔断器会不断的进行计算操作,判断是否需要打开熔断器。熔断器一般来说有三种状态
打开/关闭/半开放
初始的时候熔断器是关闭的,一旦请求失败会触发熔断检测,熔断检测就是进行对应的计算来决定是否打开熔断器,当熔断器打开的时候会熔断所有和此熔断器相关联的请求,直到冷却时间结束 冷却时间是当你的熔断器被打开的时候,冷却时间就开始计时,当冷却时间到了之后会默认进入半开放状态