GatewayConfig
其实这种配置方式就是通过代码的方式进行配置,也就是通过@Bean注入一个RouteLocator
那我们直接来操作一下
具体操作
首先我们在新建一个GateWayConfig,其实这里的配置对应的就是我们之前在YML中配置的对应内容
1 | package com.mashibing.com.cloudalibabagateway9999.config; |
其实这种配置方式就是通过代码的方式进行配置,也就是通过@Bean注入一个RouteLocator
那我们直接来操作一下
首先我们在新建一个GateWayConfig,其实这里的配置对应的就是我们之前在YML中配置的对应内容
1 | package com.mashibing.com.cloudalibabagateway9999.config; |
Spring Cloud Gateway 断言 Predicate
每一个Predicate的使用,可以理解为:当满足条件后才会进行转发,如果是多个,那就是满足所有条件才会转发
在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的话会产生很多问题,例如:
为解决上面的问题所以引入了网关的概念:所谓的API网关,就是指系统的统一入口,提供内部服务的路由中转,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、路由转发等。
Spring Cloud Alibaba Sentinel 源码分析-滑动时间窗口算法原理
“滑动时间窗口算法” 是Sentinel源码中的一个非常重要的算法。
那么在了解滑动时间窗算法之前,我们先要来了解时间窗算法,也可以称之为:固定时间窗算法
概念:固定时间窗口计数器算法思想:在固定的时间窗口内,可以允许固定数量的请求进入。超过数量就拒绝或者排队,等下一个时间段进入。
Spring Cloud Alibaba Sentinel DegradeSlot 源码解析
DegradeSlot是熔断降级的Slot,那我们直接来看核心方法
1 | //DegradeSlot.entry |
Spring Cloud Alibaba Sentinel StatisticSlot 源码解析
StatisticSlot 是 Sentinel 最为重要的类之一,用于根据规则判断结果进行相应的统计操作。
entry 的时候:依次执行后面的判断 slot。每个 slot 触发流控的话会抛出异常(BlockException的子类)。若有 BlockException抛出,则记录 block 数据;若无异常抛出则算作可通过(pass),记录 pass 数据。
exit 的时候:若无 error(无论是业务异常还是流控异常),记录 complete(success)以及 RT,线程数-1。
Spring Cloud Alibaba Sentinel FlowSlot 源码解析
1 | // 获取到指定资源的所有流控规则 |