微服务系列之 初识Sentinel

开始之前,先了解一下什么叫做雪崩问题1.1.雪崩问题及解决方案1.1.1.雪崩问题微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。但是,依赖服务I

微服务系列之 统一网关Gateway--限流过滤器,限流算法简介


概述限流:对应用服务器的请求做限制,避免因过多请求而导致服务器过载甚至宕机。限流算法常见的包括两种:计数器算法,又包括窗口计数器算法、滑动窗口计数器算法漏桶算法(Leaky Bucket)令牌桶算法(Token Bucket)计数器算法固定窗口计数器算法概念如下:将时间划分为多个窗口;在每个窗口内每

微服务系列之 统一网关Gateway--跨域问题处理


概述跨域:域名不一致就是跨域,主要包括:域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com域名相同,端口不同:localhost:8080和localhost8081跨域问题:浏览器禁止请求的发起者与服务端发生跨域a

微服务系列之 统一网关Gateway--过滤器的执行顺序


请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GlobalFilter请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器.概述每一个过滤器都必须指定一个int类型的order值,o

微服务系列之 统一网关Gateway--全局过滤器GlobalFilter


概述全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。区别在于GatewayFilter通过配置定义,处理逻辑是固定的。而GlobalFilter的逻辑需要自己写代码实现。定义方式是实现GlobalFilter接口。@Component@Order()/

微服务系列之 统一网关Gateway--路由过滤器GatewayFilter


概述GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理spring官方文档Spring提供了31种不同的路由过滤器工厂。例如:案例给所有进入userservice的请求添加一个请求头:gateway=gateway is awesome!实现方式:在ga

微服务系列之 统一网关Gateway--路由断言工厂


概述路由断言工厂Route Predicate Factory spring 的官方文档网关路由可以配置的内容包括:路由id:路由唯一标示uri:路由目的地,支持lb和http两种predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地filters:路由过滤器,处理请求或响

微服务系列之 Feign的最佳实践


概述方式一(继承):给消费者的FeignClient和提供者的controller定义统一的父接口作为标准。服务紧耦合父接口参数列表中的映射不会被继承方式二(抽取):将FeignClient抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。实践实现

微服务系列之 自定义Feign的配置---日志配置

继文章微服务系列之 初始FeignFeign运行自定义配置来覆盖默认配置,可以修改的配置如下:一般我们需要配置的就是日志级别。配置Feign日志方式一在order-service的application.yml配置文件中进行如下配置:全局生效的配置feign: client: config:

微服务系列之 初始Feign

继文章 微服务系列之 Eureka 实现注册中心案例,可以发现,我们在远程调用时,使用以下的方式:public class OrderService { @Autowired private OrderMapper orderMapper; @Autowired privat