首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring云网关使用eureka自动路由

Spring云网关使用eureka自动路由
EN

Stack Overflow用户
提问于 2019-11-05 23:50:06
回答 4查看 2.4K关注 0票数 3

我使用Spring创建微服务。我使用Eureka进行服务发现,使用Spring cloud gateway进行路由。我想要为我拥有的服务数量自动路由。

例如,如果一个服务'eureka-client‘注册到Eureka,并且使用Spring Cloud Gateway进行路由,我必须为每个服务创建一个路由,如下所示。

代码语言:javascript
复制
  routes:
  - id: eureka-client
    uri: lb://eureka-client
    predicates:
    - Path=/eureka-client/**

只有几个服务是可以接受的,但最终我可能会得到数百个服务。而且每个人都必须在Spring Cloud Gateway中编写自己的路由。我用过spring.cloud.gateway.discovery.locator.enabled=true,但没有解决这个问题。基本上,我正在尝试消除yaml文件中的路由配置。

有没有办法提供从Spring Cloud Gateway到Eureka的每个服务的自动路由?

参考:https://cloud.spring.io/spring-cloud-gateway/reference/html/#discoveryclient-route-definition-locator

我得到了404,因为它不能得到适当的路由,任何帮助都将不胜感激。谢谢。

EN

回答 4

Stack Overflow用户

发布于 2020-08-13 10:31:00

只是在使用

spring.cloud.gateway.discovery.locator.enabled=true spring.cloud.gateway.discovery.locatorlower-case-service-id: true

而不显式地指定路由应该起作用。

票数 1
EN

Stack Overflow用户

发布于 2021-09-04 21:18:38

有关自动路由配置的说明,请参阅:

https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-discoveryclient-route-definition-locator

对于Eureka Netflix客户端,必须在pom.xml中添加所需的依赖项,必须在主应用程序类(@EnableEurekaClient)中启用它,并且必须在applications.yml中指定所需的属性

代码语言:javascript
复制
eureka:
    client:
        fetchRegistry: true
        registerWithEureka: false
        serviceUrl:
            defaultZone: http://localhost:port/eureka
    instance:
        preferIpAddress: true

为了给网关启用小写的服务,需要添加:

代码语言:javascript
复制
spring:
    application:
        name: gateway service
    cloud:
        gateway:
            discovery:
                locator:
                    enabled: 'true'
                    lower-case-service-id: 'true'
票数 1
EN

Stack Overflow用户

发布于 2020-11-29 01:22:47

您必须用下面的代码让网关知道eureka服务器

eureka.client.service-url.defaultZone=http://user:pass@localhost:8761/eureka

然后阻止网关将自己注册到eureka

eureka.client.register-with-eureka=false

将第二个选项设置为false很重要,因为它会导致使用lb:servicename结构的负载均衡出现404个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58714918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档