Skip to content

Latest commit

 

History

History
154 lines (125 loc) · 3.2 KB

77.gateway_dynamic_route_demo.md

File metadata and controls

154 lines (125 loc) · 3.2 KB

Spring Cloud Gateway 动态路由配置示例


1 摘要

使用 Spring Cloud Gateway 实现动态路由能够更好地管理服务,但是如何配置动态路由也是一个实际的问题。本文将给出一些路由配置示例,以供参考。

Spring Cloud Alibaba 2.2 简易集成 Gateway:

Spring Cloud Alibaba 集成网关Gateway

Gateway 全局过滤功能:

Spring Cloud Alibaba 集成网关 Gateway 全局过滤功能

Gateway 动态路由:

Spring Cloud Alibaba 集成 Gateway 实现动态路由功能

2 动态路由配置信息

2.1 服务根路径命令规范

application.yml/properties 中每一个服务需要设置一个唯一的请求的根路径,用于区分服务

## server
server:
  servlet:
    context-path: /cloud-alibaba-provider

2.2 普通 HTTP 转发路由

{
    "id": "demoRouter416",
    "predicates": [
        {
            "name": "Path",
            "args": {
                "pattern": "/shop/user/**"
            }
        }
    ],
    "filters": [
        {
            "name": "PrefixPath",
            "args": {
                "prefix": "/api"
            }
        }
    ],
    "uri": "http://127.0.0.1:8613",
    "metadata": {},
    "order": 0
}

2.3 微服务代理路由

服务提供者

cloud-alibaba-server-provider 项目

{
    "id": "route-cloud-alibaba-server-provider",
    "predicates": [
        {
            "name": "Path",
            "args": {
                "pattern": "/cloud-alibaba-provider/**"
            }
        }
    ],
    "filters": [
        {
            "name": "PrefixPath",
            "args": {
                "prefix": ""
            }
        }
    ],
    "uri": "lb://cloud-alibaba-server-provider",
    "metadata": {},
    "order": 0
}

服务消费者:

cloud-alibaba-server-consumer 项目

{
    "id": "route-cloud-alibaba-server-consumer",
    "predicates": [
        {
            "name": "Path",
            "args": {
                "pattern": "/cloud-alibaba-consumer/**"
            }
        }
    ],
    "filters": [
        {
            "name": "PrefixPath",
            "args": {
                "prefix": ""
            }
        }
    ],
    "uri": "lb://cloud-alibaba-server-consumer",
    "metadata": {},
    "order": 0
}

服务消费者:

cloud-alibaba-server-consumer-feign 项目

{
    "id": "route-cloud-alibaba-server-consumer-feign",
    "predicates": [
        {
            "name": "Path",
            "args": {
                "pattern": "/cloud-alibaba-consumer-feign/**"
            }
        }
    ],
    "filters": [
        {
            "name": "PrefixPath",
            "args": {
                "prefix": ""
            }
        }
    ],
    "uri": "lb://cloud-alibaba-server-consumer-feign",
    "metadata": {},
    "order": 0
}