为什么尤里卡用错误的URL注册自己?

时间:2019-04-06 19:32:35

标签: spring-boot netflix-eureka

尝试配置我的eureka注册表,一切似乎正常,该应用程序启动并显示有关其实例的信息。 我面临的问题是,它一直在注册错误的网址作为其节点。特别是,它一直在路径中添加/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 个答案:

答案 0 :(得分:1)

首先,您将 defaultZone 留在了配置文件中,它应该是:

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

其中一部分,一件事就是显示仪表板的URL,其中没有“ / eureka”:

http://localhost:8761

另一件事是在哪里注册了服务,即“ / eureka”

http://localhost:8761/eureka