微信第三方网站怎么做,4s店网站建设计划,网页编辑器怎么用,做商业网站要交税吗目录
一、网关技术的实现
在SpringCloud中网关的实现包括两种:
作用#xff1a;
二、搭建网关服务
1、新建模块#xff0c;并添加依赖
2、新建Gateway包#xff0c;并编写启动类
3、编写yml文件
4、启动服务#xff0c;并在网页内测试
5、步骤
三、路由断言工厂 …目录
一、网关技术的实现
在SpringCloud中网关的实现包括两种:
作用
二、搭建网关服务
1、新建模块并添加依赖
2、新建Gateway包并编写启动类
3、编写yml文件
4、启动服务并在网页内测试
5、步骤
三、路由断言工厂
1、网关路由可以配置的内容包括:
四、路由过滤器
配置路由过滤器
1、修改yml文件
2、重启gateway服务并在userController中添加请求头参数 3、重启user服务并且在浏览器中进行测试
配置所有路由的过滤器
1、在yml文件中添加默认路由过滤器
2、重启网关并测试
五、全局过滤器
1、新增拦截器类
2、重启服务并发送请求
3、添加过滤参数并发送请求
六、过滤器执行顺序
七、跨域问题的解决 一、网关技术的实现
在SpringCloud中网关的实现包括两种: gatewayzuul Zuul是基于Servlet的实现属于阻塞式编程。 而SpringCloudGateway则是基于Spring5中提供的WebFlux属于响应式编程的实现具备更好的性能。 作用 对用户请求做身份认证、权限校验将用户请求路由到微服务并实现负载均衡对用户请求做限流 二、搭建网关服务
1、新建模块并添加依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency
2、新建Gateway包并编写启动类 3、编写yml文件 server:port: 10010
spring:application:name: gatewaycloud:nacos:server-addr: localhost:8848 #nacos地址gateway:routes:- id: user-service #路由标识唯一uri: lb://userservice #目标路由的地址predicates: #路由断言- Path/user/** #判断路径- id: order-serviceuri: lb://orderservicepredicates:- Path/order/**4、启动服务并在网页内测试 5、步骤 三、路由断言工厂
1、网关路由可以配置的内容包括:
路由id:路由唯一标示uri:路由目的地支持lb和http两种predicates:路由断言判断请求是否符合要求符合则转发到路由目的地filters:路由过滤器处理请求或响应 具体使用方法可以在spring官网查看
当路由规则不符合时会出现404的错误 四、路由过滤器 路由过滤器工厂同样有30多个这里是具体实现方法。 配置路由过滤器
1、修改yml文件 filters:- AddRequestHeaderTruth,Itcast is freaking aowsome!
2、重启gateway服务并在userController中添加请求头参数 3、重启user服务并且在浏览器中进行测试
说明请求头添加成功了 这只是配置单个路由的过滤器若要添加所有路由过滤器进行以下步骤
配置所有路由的过滤器
1、在yml文件中添加默认路由过滤器 2、重启网关并测试
发现请求头添加成功也就是过滤器添加成功 五、全局过滤器
1、新增拦截器类 Order(-1) //参数是指过滤器的优先级值越低优先级越高
Component
public class AuthorizeFileter implements GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {
// 1.获取请求参数ServerHttpRequest request exchange.getRequest();MultiValueMapString, String params request.getQueryParams();
// 2.获取参数中的authorization参数String authorization params.getFirst(authorization);
// 3.判断参数值是否等于adminif (admin.equals(authorization)){
// 4.是则放行return chain.filter(exchange);}else {
// 5.否则拦截
// 5.1设置状态码exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
// 5.2拦截请求return exchange.getResponse().setComplete();}}
}
2、重启服务并发送请求 3、添加过滤参数并发送请求 六、过滤器执行顺序 order值越小优先级越高当order值一样时顺序是defaultFilter最先然后是局部的路由过滤器最后是全局过滤器 七、跨域问题的解决 在gateway的yml文件中加上网站记得改 globalcors: # 全局的跨域处理add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题corsConfigurations:[/**]:allowedOrigins: # 允许哪些网站的跨域请求- http://localhost:8090- http://www.leyou.comallowedMethods: # 允许的跨域ajax的请求方式- GET- POST- DELETE- PUT- OPTIONSallowedHeaders: * # 允许在请求中携带的头信息allowCredentials: true # 是否允许携带cookiemaxAge: 360000 # 这次跨域检测的有效期