其他分享
首页 > 其他分享> > gateway路由

gateway路由

作者:互联网

1.Route(路由):路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由
2.Predicate(断言):参考的是Java8的java.util.function.Predicate
开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由
3.Filter(过滤):指的是Spring框架中GatewayFilter的实例,使用过滤器,可以在请求被路由前或者之后对请求进行修改。

一、断言

spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由
      routes:
        - id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          #uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://cloud-client #匹配后提供服务的路由地址
          predicates:
            - Path=/client/get/**         # 断言,路径相匹配的进行路由
            #- After=2020-02-05T15:10:03.685+08:00[Asia/Shanghai]         # 断言,路径相匹配的进行路由
            - Before=2020-02-05T15:10:03.685+08:00[Asia/Shanghai]         # 断言,路径相匹配的进行路由
            #- Cookie=username,zhsh #并且Cookie是username=zhsh才能访问
            #- Header=X-Request-Id, \d+ #请求头中要有X-Request-Id属性并且值为整数的正则表达式
            #- Host=**.zhsh.com
            #- Method=GET
            #- Query=username, \d+ #要有参数名称并且是正整数才能路由
			
	获得上图中的时间格式
	public class A {
	//运行就可以了
		public static void main(String[] args) {
			ZonedDateTime zbj = ZonedDateTime.now(); // 默认时区
			System.out.println(zbj);
		}
	}

二、filter
image
AddRequestHeader
AddRequestHeader需要name和value参数。

spring:
  cloud:
    gateway:
      routes:
      - id: add_request_header_route
        uri: https://example.org
        filters:
        - AddRequestHeader=X-Request-red, blue
		
示例表示将X-Request-red:blue消息头添加到所有匹配请求的下游请求消息头中。

标签:请求,#-,路由,gateway,cloud,断言
来源: https://www.cnblogs.com/monkeyi/p/16688302.html