Почему Эврика регистрируется с неправильным URL? - PullRequest
0 голосов
/ 06 апреля 2019

При попытке настроить мой реестр eureka все вроде бы нормально, приложение запускается и отображает информацию о своем экземпляре.Проблема, с которой я сталкиваюсь, заключается в том, что он продолжает регистрировать неправильный URL в качестве своего узла.В частности, он добавляет суффикс /eureka к пути.

Это мой pom (очень стандартный):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>project</groupId>
    <artifactId>registry</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>registry</name>
    <description>Project Registry Server</description>

    <properties>
        <java.version>12</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--BEGIN EE modules disabled/removed after Java 8-->
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.3.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.1</version>
        </dependency>
        <!--END EE modules disabled/removed after Java 8-->
    </dependencies>

    <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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

, в то время как это основной класс:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class RegistryApplication {

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

И последнее, свойства моего приложения:

server:
  port: 8761
spring:
  application:
    name: project-registry
eureka:
  client:
    fetchRegistry: false
    registerWithEureka: false

Как показывает журнал запуска, оно регистрируется на http://localhost:8761/eureka/, что неверно, поскольку на панели инструментов отображается http://localhost:8761.

2019-04-06 21:14:28.436  INFO 16563 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-04-06 21:14:28.851  INFO 16563 --- [           main] o.s.c.n.eureka.InstanceInfoFactory       : Setting initial instance status as: STARTING
2019-04-06 21:14:28.868  INFO 16563 --- [           main] com.netflix.discovery.DiscoveryClient    : Initializing Eureka in region us-east-1
2019-04-06 21:14:28.868  INFO 16563 --- [           main] com.netflix.discovery.DiscoveryClient    : Client configured to neither register nor query for data.
2019-04-06 21:14:28.872  INFO 16563 --- [           main] com.netflix.discovery.DiscoveryClient    : Discovery Client initialized at timestamp 1554578068871 with initial instances count: 0
2019-04-06 21:14:28.897  INFO 16563 --- [           main] c.n.eureka.DefaultEurekaServerContext    : Initializing ...
2019-04-06 21:14:28.899  INFO 16563 --- [           main] c.n.eureka.cluster.PeerEurekaNodes       : Adding new peer nodes [http://localhost:8761/eureka/]
2019-04-06 21:14:29.016  INFO 16563 --- [           main] c.n.d.provider.DiscoveryJerseyProvider   : Using JSON encoding codec LegacyJacksonJson
2019-04-06 21:14:29.016  INFO 16563 --- [           main] c.n.d.provider.DiscoveryJerseyProvider   : Using JSON decoding codec LegacyJacksonJson
2019-04-06 21:14:29.016  INFO 16563 --- [           main] c.n.d.provider.DiscoveryJerseyProvider   : Using XML encoding codec XStreamXml
2019-04-06 21:14:29.016  INFO 16563 --- [           main] c.n.d.provider.DiscoveryJerseyProvider   : Using XML decoding codec XStreamXml
2019-04-06 21:14:29.126  INFO 16563 --- [           main] c.n.eureka.cluster.PeerEurekaNodes       : Replica node URL:  http://localhost:8761/eureka/
2019-04-06 21:14:29.135  INFO 16563 --- [           main] c.n.e.registry.AbstractInstanceRegistry  : Finished initializing remote region registries. All known remote regions: []
2019-04-06 21:14:29.136  INFO 16563 --- [           main] c.n.eureka.DefaultEurekaServerContext    : Initialized

Вот информация, отображаемая приборной панелью: enter image description here

Чего не хватает в конфигурации?

1 Ответ

1 голос
/ 09 апреля 2019

Прежде всего, вы оставили defaultZone в файле конфигурации, это должно быть:

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

Часть этого, одна вещь, это URL, который показывает панель инструментов,без "/ eureka":

http://localhost:8761

и еще одна вещь, где регистрируются сервисы, это с "/ eureka"

http://localhost:8761/eureka
...