【发布时间】:2021-06-16 08:56:15
【问题描述】:
我正在学习 Spring Boot Kubernetes 并尝试为我的服务设置 Spring Cloud Gateway。我相信有了 Spring Cloud Gateway,我们就不必再使用 Ribbon 进行负载平衡了。因此,如果我不使用功能区,那么路线的配置也会发生变化。我查看了网站的建议,以下是我发现的:-
routes:
- id: department_route
uri: http://departmentservice:4200 #
predicates:
- Path=/*
在这种情况下,uri 具有服务可用的端口的硬编码值。这是推荐的方法吗?
然后还有另一种配置,看起来像这样,不确定 url-expression 试图做什么:-
spring:
application.name: gateway
cloud:
gateway:
discovery:
locator:
enabled: true
url-expression: "'http://'+serviceId"
server.port: 8080
难道不能通过名称进行服务发现并在其后附加谓词吗?
【问题讨论】:
-
第一个是静态配置,第二个是动态配置,它从服务寄存器中查找(在您的情况下为 kubernetes)。
-
@spencergibb,所以对于第二个我认为应该是推荐的生产方法并且语法应该按原样工作?
-
我不能说一个比另一个更适合生产,只有一个是静态的,一个是动态的。语法应该有效。
标签: spring-boot kubernetes spring-cloud spring-cloud-gateway spring-cloud-kubernetes