首页 > 其他分享 >gateway配置详解

gateway配置详解

时间:2023-02-08 17:23:28浏览次数:37  
标签:配置 springframework 详解 路由 org import gateway cloud

Gateway网关,通过检查请求地址匹配相应的服务请求,访问时直接请求网关的请求地址,会转发到相应的服务;可通过yml文件配置或者代码配置

pom:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

  

gateway的yml配置:

spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 开启从注册中心动态创建路由的功能,利用微服务名称j进行路由
      routes:
        - id: payment_route # 路由的id,没有规定规则但要求唯一,建议配合服务名
          #匹配后提供服务的路由地址
#          uri: http://localhost:8001 固定地址
          uri: lb://cloud-payment-service # 服务名
          predicates:
            # 过滤
            - Path=/payment/get/** # 断言,路径相匹配的进行路由
            - After=2021-11-01T10:01:53.212+08:00[Asia/Shanghai]
            #- Before=2017-01-20T17:42:47.789-07:00[America/Denver]
            #- Cookie=username,zzyy
            #- Header=X-Request-Id, \d+ #请求头要有X-Request-Id属性,并且值为正数
            #- Host=**.atguigu.com
            #- Method=GET
            #- Query=username, \d+ # 要有参数名username并且值还要是正整数才能路由
          # 过滤
          #filters:
          #  - AddRequestHeader=X-Request-red, blue
        - id: payment_route2
          uri: lb://cloud-payment-service
          predicates:
            Path=/payment/lb/** #断言,路径相匹配的进行路由

  

代码文件指定转发的接口(代码配置)

package com.atguigu.springcloud.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class GatewayConfig {
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        RouteLocatorBuilder.Builder routers = routeLocatorBuilder.routes();

        routers.route("path_route_atguigu",
                r ->r.path("/guonei")
                        .uri("http://news.baidu.com/guonei")).build();
        return routers.build();
    }
}

  

配置过滤条件

package com.atguigu.springcloud.config.filter;

import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

import java.util.Date;

@Component
@Slf4j
public class MyLogGateWayFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        log.info("********MyLogGateWayFilter"+new Date());
        String uname = exchange.getRequest().getQueryParams().getFirst("uname");
        if(uname == null){
            log.info("非法用户");
            exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);
            return exchange.getResponse().setComplete();
        }
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return 0;
    }
}

  

标签:配置,springframework,详解,路由,org,import,gateway,cloud
From: https://www.cnblogs.com/brandon-i/p/17102570.html

相关文章

  • 完整工作流整合方案,自定义配置,Java+Vue+Activiti@附配套文档
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot......
  • 安装配置apache
    推荐步骤:​在Centos02安装DNS服务器,DNS区域的名字为bdqn.com,在DNS区域中添加www主机指向网站服务器​在Centos01安装apache服务器,优化apache服务,客户端使用www.bdqn.com访......
  • 安装配置Apache
    实验步骤给Centos01配置IP地址给Centos01修改IP地址和DNS第一章:安装配置Apache_DNS重新启动服务查看IP地址和DNS第一章:安装配置Apache_配置文件_02查看配置的IP地址和DNS第......
  • MySQL DISTINCT关键字详解:用法、实际应用和与GROUP BY的区别
    "Successisnothowhighyouhaveclimbed,buthowyoumakeapositivedifferencetotheworld."成功不在于你爬得多高,而在于你对世界做出了多大的积极影响。-Roy......
  • MFS分布式文件系统安装配置【转】
    一、地址规划   主控服务器MasterServer:192.168.11.100      安装Master角色   元数据日志服务器MetaLoggerServer:192.168.11.103     ......
  • 【Spring-boot-route(二)读取配置文件的几种方式】
    SpringBoot提供了两种格式的配置文件,分别是​​properties​​​和​​yml​​。SpringBoot最大的特点就是自动化配置,如果我们想修改自动化配置的默认值,就可以通过配置......
  • Java中的JDBC基本概念和各对象详解
    概念JavaDataBaseConnectivity Java数据库连接,Java语言操作数据库JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这......
  • FreeSWITCH 启用多域(多租户)的配置
    如果将FreeSWITCH用于云端,支持大规模并发呼叫,就要用到多域/多租户技术了,FreeSWITCH本身可以直接支持.每个域可以单独,拥有相同的分机号也互相打不通,各自线路,......
  • FreeSWITCH 安装配置的 各种坑, 填坑
    个人安装环境:OS:CentOS6.764位FreeSWITCHVer:1.6.17 一.编译出错安装之前,最好先安装这几个东西(如果有,请忽略):yasm(有nasm的话不用装这个),opus-dev......
  • Linux 配置nginx访问密码认证
    部署httpd Nginx为我们提供了 ngx_http_auth_basic_module 模块,该模块可以让我们自己实现对Web内容的访问能控制,访问用户必须输入正确的用户名和密码后才能进行访问y......