Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

readme.md

网关管理应用

关键词

动态路由、动态网关

简介

网关的管理服务,提供网关路由配置的增加、修改、删除等管理功能。

启动

先决条件

启动命令

进入应用目录

启动命令:mvn spring-boot:run

docker镜像打包:mvn docker:build

使用指南

新增路由

接口用途: 通过网关后台动态新增路由或配置路由策略,如限流、转发、处理等网关动作

接口路径:POST /gateway/routes

报文类型:application/json

请求参数:

服务名 简介 默认地址
uri 必填 代理路径,如http://baidu.com或lb://serviceId
routeId 必填 路由名称,不可重复
predicates 必填 断言,有多种断言维度,springcloud gateway默认有多种实现,见文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.2.RELEASE/single/spring-cloud-gateway.html#gateway-request-predicates-factories,见例子
filters 非必填 过滤器配置,springcloud gateway默认有多种实现,见文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.2.RELEASE/single/spring-cloud-gateway.html#_gatewayfilter_factories,见例子
description 非必填 路由描述

例子:

predicates:

 [{
    name:"Path",   
    args:{
    	"pattern":"配置路径"
    }
 }]

filters:

[{
   name:"AddRequestHeader",   
   args:{
   	"pattern":"X-Request-Foo, Bar"
   }
}]

转发路由例子

请求报文

{
    "uri": "http://www.baidu.com",
    "routeId": "test_route_id",
    "predicates": [{
        "name": "Path",
        "args": {
            "pattern": "/bd"
        }
    }],
    "filters":[{
    	"name": "StripPrefix",
        "args": {
            "parts": "2"
        }
    }],
    "description": "这是一个转发XX服务的路由"
}

响应报文

{
    "code": "000000",
    "mesg": "处理成功",
    "timestamp": "2019-01-31T07:19:53.230Z",
    "data": 1
}

限流路由例子

请求报文

{
    "uri": "lb://serviceid",
    "routeId": "xx_routeid",
    "predicates": [{
    	"name": "Path",
        "args": {
            "pattern": "/xx"
        }
    }],
    "filters":[{
        "name": "RequestRateLimiter",
        "args": {
            "redis-rate-limiter.replenishRate": "10",
            "redis-rate-limiter.burstCapacity": "20"
        }
    }],
    "description": "这是一个带限流的路由"
}

响应报文

{
    "code": "000000",
    "mesg": "处理成功",
    "timestamp": "2019-01-31T07:19:53.230Z",
    "data": 1
}