当前位置: 首页 > 知识库问答 >
问题:

Spring Boot 2.0.0.M7 Spring cloud gateway(finchley.m5)和netflix eureka集成不起作用

何勇
2023-03-14

我试图访问application.yml中定义的/get API或endpoint,但未找到404

GET/GET http/1.1 accept://accept-encoding:gzip,deflate connection:keep-alive host:localhost:8761 user-agent:httpie/0.9.9

HTTP/1.1 404 content-type:application/json;charset=UTF-8日期:周二,2018年1月23日10:39:07格林尼治时间传输-编码:分块

{“错误”:“找不到”,“消息”:“无消息可用”,“路径”:“/get”,“状态”:404,“时间戳”:“2018-01-23T10:39:07.770+0000”}

这是我的设置

cloud:spring-boot-starter-actuator

cloud:spring-cloud-starter-netflix-eureka-server

spring:
  application:
    name: gateway
  cloud:
    gateway:
      routes:
      - id: get
        uri: http://httpbin.org:80
        predicates:
        - Path=/get
server:
  port: 8761
eureka:
  client:
    fetch-registry: false
    register-with-eureka: false
@SpringBootApplication
@EnableEurekaServer
public class GatewayApplication {

@Bean
public DiscoveryClientRouteDefinitionLocator clientRouteDefinitionLocator(DiscoveryClient discoveryClient) {
    return new DiscoveryClientRouteDefinitionLocator(discoveryClient);
}

public static void main(String[] args) {
    SpringApplication.run(GatewayApplication.class, args);
}
}

._______________/\/“

在类路径上发现了Spring MVC,此时与Spring云网关不兼容。请删除spring-boot-starter-web依赖项。

共有1个答案

苏翰学
2023-03-14

根据您的堆栈跟踪,这似乎是Netflix Eureka没有在云网关注册的根本原因。

在us-east-1 2018-01-23 15:33:22.888 INFO 14372---[main]com.netflix.discovery.discoveryClient:客户端配置为既不注册也不查询数据。2018-01-23 15:33:22.888信息14372---[main]com.netflix.Discovery.discoveryClient:发现客户端初始化时间戳1516701802888,初始实例计数:0 201 8-01-23 15:33:23.119信息14372---[main]

您应该更改application.yml文件中的一些应用程序属性:-

           eureka:
              client:
                fetch-registry: true
                register-with-eureka:false
                service-url:
                  defaultZone:htttp://eurekSever-xxx.com (eureka server url on the cloud)

为了让客户机注册或查询数据,您需要将fetch-registry或register-with eureka中的一个设置为true。你可以让两者都成真。让我在这里解释一下这些字段的含义:

fetch-registry:true(此属性允许客户端应用程序通过eureka.Client.serviceurl.DefaultZone定位eureka服务器来获取eureka服务器上已注册的服务)。发现客户端检查它是否可以获取eureka服务器上已注册的服务。如果此属性为false,则无法查询数据)

Register-with-eureka:true(如果客户机应用程序(App A)希望用特定实例注册到eureka服务器上,则使用此属性,该实例稍后可以由另一个客户机应用程序例如App B获取)。

getInstances(“client-application-name”).get(0).getTuri()应该获得在netflix eureka上注册的第一个实例的url

 类似资料:
  • 我是嵌套路线在我的项目。我有一个pp.js,在其中我定义了路由,在组件中我有更多的路由,我希望它们被嵌套。唯一的问题是我的嵌套路由位于连接到redux的组件中。嵌套路由不能正常工作。 我已经从官方文档中尝试过了,但它不起作用。 https://reacttraining.com/react-router/core/guides/philosophy App.js 下面是我的Redux容器文件,它根

  • 问题内容: 我正在尝试集成JQuery.iCheck(用于样式设置的插件)。在这里,我遵循了一些建议,即通过使用集成jQuery插件以与Angular完全兼容的方法。 所以我实现了: 这无法与my一起使用,并且不会更改的属性 。 我的代码-Git 我的代码: 我的HTML: 问题答案: 已经解决了此链接:https://github.com/fronteed/iCheck/issues/62由wa

  • 问题内容: 我有一些由Bitovi用funcunit编写的测试,在最终让它们与phantomjs一起工作之后,我希望在Jenkins的工作中实现自动化。 这实际上已经可以使用,但是我需要一种可视化我的结果的方法,所以我读到Jenkins的XUnit插件应该可以实现,但是我设置它的测试模式类型无关紧要,要么说它是空的或它不是有效的xml。 在下面,您将找到我为运行测试套件而执行的命令以及xml文件中

  • 我正在致力于将Spring集成与AWS SQS队列集成。 当我用ServiceActivator注释的方法引发异常时,我遇到了一个问题。在这种情况下,消息似乎无论如何都会从队列中删除。我已在SqsMessageDrivenChannelAdapter中将MessageDeletionPolicy配置为成功时的。 这是我的通道/适配器配置https://github.com/sdusza1/spri

  • 我正在使用带Spring security的Thymeleaf模板引擎。为了使用sec:authorize功能,我还使用了Thymeleaf-Spring Security集成模块,但由于某些原因,它不起作用。我没有收到任何错误,但是html div块中的所有代码都会被执行,无论用户扮演哪个角色。 例如,当我以员工身份登录时,我也会看到“去领导”和“去系统”按钮,但我不想让员工看到这些按钮。 这是

  • 在spring boot中,我试图创建我的第一个事务性测试,但trasaction不起作用。 null 我需要的是: 将数据插入事务。 从事务中读取数据。 测试返回的数据。 回滚事务。