目录
一、gateway和nginx的区别?
二、Gateway流程
三、负载均衡 (gateway已经实现了)
四、gateway的application配置
五、gate的way的拓展
(1)gateway实现跨域
(2)过滤器,用于同一处理
(3)覆盖默认的异常处理 和 自定义异常处理
一、gateway和nginx的区别?
注意: 使用nginx需要在接口上添加跨域注解@CrossOrigin,但是使用gateway,就不用了,它可以实现跨域。

目录
一、gateway和nginx的区别?
二、Gateway流程
三、负载均衡 (gateway已经实现了)
四、gateway的application配置
五、gate的way的拓展
(1)gateway实现跨域
(2)过滤器,用于同一处理
(3)覆盖默认的异常处理 和 自定义异常处理
注意: 使用nginx需要在接口上添加跨域注解@CrossOrigin,但是使用gateway,就不用了,它可以实现跨域。
# 服务端口
server.port=8222
# 服务名
spring.application.name=service-gateway
# 第一步: nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 第二步:开启服务发现路由
spring.cloud.gateway.discovery.locator.enabled=true
# 第三步: 设置路由(可以有多个)
#设置路由id # 路由的id,可以随便写,但是建议写服务的名称
spring.cloud.gateway.routes[0].id=service-edu
#设置路由的uri # 在nacos中注册的服务名字
spring.cloud.gateway.routes[0].uri=lb://service-edu
#设置路由断言,代理servicerId为auth-service的/auth/路径
spring.cloud.gateway.routes[0].predicates= Path=/eduserviceauthinner
@Override
protected Map getErrorAttributes(ServerRequest request, boolean includeStackTrace) {
Map map = new HashMap<>();
map.put("success", false);
map.put("code", 20005);
map.put("message", "网关失败");
map.put("data", null);
return map;
}
@Override
protected RouterFunction getRoutingFunction(ErrorAttributes errorAttributes) {
return RouterFunctions.route(RequestPredicates.all(), this::renderErrorResponse);
}
@Override
protected int getHttpStatus(Map errorAttributes) {
return 200;
}
}