Spring Cloud Greenwich将spring-cloud-netflix-zuul
置于维护模式,因此我正尝试从Zuul迁移到Spring Cloud Gateway。
有了Zuul,我有一条类似的路线
zuul:
routes:
masterplan_match:
path: /**/masterplans/**
serviceId: api-masterplan
我在这里所做的基本上是忽略接收路径中masterplan
之前或之后的所有内容,然后重定向到api-masterplan
。例如,/some/path/to/masterplans
和/masterplans
都使用相同的api(原因是masterplans
是较大实体的子资源,该实体负责创建新的masterplans
,但是那么masterplans
可以被视为完全消耗的资源,例如用于GET
设置详细信息,更新和删除)。
我可以将此配置映射到Spring Cloud Gateway吗?从predicates来看,可行的似乎是path predicate,但是看起来所有匹配器都在单个路径元素上工作(WildcardTheRestPathElement
除外,但该路径元素只能用作最后一个元素-我认为),即:我需要写类似
spring
cloud:
gateway:
routes:
- id: masterplan_match
uri: lb://api-masterplan # Coming from discovery client
predicates:
- Path=/some/path/to/masterplans/**, /masterplans/**
我丢失了什么东西吗,两条路径可以汇聚成一个吗?
答案 0 :(得分:0)
Spring Cloud Gateway 自 {
"kind": "Pod",
"apiVersion": "v1",
"metadata": {
"name": "nginx",
"creationTimestamp": null,
"labels": {
"run": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx",
"image": "nginx",
"resources": {}
}
],
"restartPolicy": "Always",
"dnsPolicy": "ClusterFirst"
},
"status": {}
}
版本起支持多种模式
2.1.0
另见: