使用 Spring Cloud Gateway 实现动态路由能够更好地管理服务,但是如何配置动态路由也是一个实际的问题。本文将给出一些路由配置示例,以供参考。
Spring Cloud Alibaba 2.2 简易集成 Gateway:
Spring Cloud Alibaba 集成网关Gateway
Gateway 全局过滤功能:
Spring Cloud Alibaba 集成网关 Gateway 全局过滤功能
Gateway 动态路由:
Spring Cloud Alibaba 集成 Gateway 实现动态路由功能
在 application.yml/properties
中每一个服务需要设置一个唯一的请求的根路径,用于区分服务
## server
server:
servlet:
context-path: /cloud-alibaba-provider
{
"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
}
服务提供者
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
}