分布式系统网关和sentinel

1.网关

作用:网关是给分布式系统进行请求路由分配的服务

功能:

请求路由

请求过滤

请求鉴权

流量控制

统一日志

2.搭建网关(微服务)

2.1依赖、配置文件、启动类

2.2配置路由(id,断言,url)

常用的断言标准:

path路径断言

method方法断言

host 域名断言

2.3过滤器

路由过滤器(路由中配置,只能由当前路由在使用)

网关过滤器(网关中所有路由共享)

自定义/全局 过滤器

2.4 过滤器实现

spring.cloud.gateway.default.filters[0]=AddRequestHeader=Truth, atguigu

2.5网关中的路由和过滤器执行顺序

1.网关先断言,先走route路由,判断请求

2.路由断言后,再交给过滤器处理

3.如何处理超出范围的高并发问题

3.1在微服务上配置访问限制

3.2在网关中进行请求限流

3.3漏桶算法

3.4 spring cloud的流量哨兵(sentinel)

3.5流量削锋(用队列)

4.sentinel安装(端口号都是8858)

1.windows版:在sentinel的jar包文件夹中,打开cmd界面,java -jar + jar包名 --server.port=8858

2.linux版:docker run -d -p 8858:8858 --name sentinel -dashboard bladex/sentinel-dashboard

3.sentinel中的簇点链路(sentinel控制台->簇点链路->流控->高级选项)

流控模式(在配置文件中加入 :spring.cloud.sentinel.web-context-unify=false(用于忽略mvc的资源路径整合))

直接:只影响当前访问路径

关联:路径A 关联路径B,A出问题,影响B

链路:影响一个资源路径下的所有的访问路径

流控效果

快速失败

warm up

排队等待

4.热点参数限流(热点限流必须命名:@SentinelResource("hot"))

上面的流控是统计访问某个资源的所有请求,判断是否超过阈值;

而热点参数限流是分别统计参数相同的请求,判断是否超过阈值。

5.降级和熔断

降级:牺牲一部分服务器的功能,返回一个兜底函数或兜底值

熔断:当服务器出现危险,直接断开连接

你可能感兴趣的:(java)