spring-boot - 我在使用 springboot 3.0.0 时遇到问题,它无法识别我的 Eureka 服务器和客户端

标签 spring-boot netflix-eureka

我在 springboot 3.0.0 上遇到问题,它无法识别我的 eureka 服务器和客户端,但在 2.7.4 版本中它可以正常工作,有什么变化吗?

听我的课:

api 网关:

@SpringBootApplication
@EnableEurekaServer
public class ApiGatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class, args);
    }

}

应用程序属性:

spring.application.name = api-gateway
server.port = 8761
eureka.client.register-with-eureka = false
eureka.client.fetch-registry = false
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

我的路线:

@EnableDiscoveryClient
@SpringBootApplication
public class RoutingApplication {

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

}

应用程序属性:

server.port=8080
spring.application.name=routing
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
eureka.instance.hostname=localhost
spring.cloud.gateway.discovery.locator.enabled=true

#spring.main.web-application-type=reactive
spring.cloud.gateway.enabled=true
spring.cloud.gateway.routes[0].id=user
spring.cloud.gateway.routes[0].uri=lb://USER
spring.cloud.gateway.routes[0].predicates=Path=/user/**

spring.cloud.gateway.routes[1].id=testes
spring.cloud.gateway.routes[1].uri=lb://TESTES
spring.cloud.gateway.routes[1].predicates=Path=/testes/**

spring.cloud.gateway.routes[2].id=user-create
spring.cloud.gateway.routes[2].uri=lb://USER-CREATE
spring.cloud.gateway.routes[2].predicates=Path=/user-create/**

spring.cloud.gateway.routes[3].id=category-product
spring.cloud.gateway.routes[3].uri=lb://CATEGORY-PRODUCT
spring.cloud.gateway.routes[3].predicates=Path=/category-product/**

我的分类-产品

@EnableDiscoveryClient
@SpringBootApplication
public class CategoryProductApplication {

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

}

我的 Controller :

@RestController
@RequestMapping("/category-product")
public class CategoryProductContriller {


  @GetMapping("/item")
  public String itens()
  {
    return "Testar";
  }

}

应用程序属性

    server.port = 8001
    spring.application.name = category-product
    eureka.client.serviceUrl.defaultZone = http://localhost:8761/eureka

eureka.instance.hostname=localhost

最佳答案

相同的问题和以下更改对我有用。

在服务器端,在 pom.xml 中进行这些更改(spring-cloud-starter-netflix-eureka-server):

<properties>
    <java.version>17</java.version>
    <spring-cloud.version>2022.0.0-RC2</spring-cloud.version>
</properties>
...   
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
...
<repositories>
    <repository>
        <id>netflix-candidates</id>
        <name>Netflix Candidates</name>
        <url>https://artifactory-oss.prod.netflix.net/artifactory/maven-oss-candidates</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

在客户端 (spring-cloud-starter-netflix-eureka-client) 进行相同的更改,但此外您还删除了 *Application.java 中的 @EnableEurekaClient 因为 import org.springframework。 cloud.netflix.eureka.EnableEurekaClient 不再可用。

我通过从 Spring Initializr 创建一个新项目解决了这个问题并观察 pom.xml 中的依赖关系。 目前我找不到任何关于它的文档。

关于spring-boot - 我在使用 springboot 3.0.0 时遇到问题,它无法识别我的 Eureka 服务器和客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74649343/

相关文章:

java - 在 Eureka Server 中,发现和注册服务/应用程序不是在 Spring 中开发的

sql - Spring Data jpa插入多个表以避免锁表

java - 同一应用程序中的 OAuth2 客户端和资源服务器

spring-boot - Yahoo POP3 和 IMAP 有时会拒绝连接

java - Spring:在运行时检测惰性 bean

spring-boot - Spring云网关无法从 Eureka 服务器解析服务ID

java - 包含 Eureka 时, Autowiring RestTemplate 会导致 "argument type mismatch"

netflix-eureka - 微服务架构——netflix技术栈

java - Spring Boot中如何记住用户?

spring-boot - Spring Cloud - 如何为分布式 Spring 应用程序获得重试、负载平衡和断路器的好处