想起每次面试都会被问道:你遇到过什么困难吗?你是怎么解决的呀?……

好吧,这个我每次都没有答好,然而我感觉我也确实没遇到过什么我能很好解决的大坑,能搞定的都是查查资料,百度一下,改改就做好了,汗。

事情是这样的,我在做一个微服务的项目,里面用到了eureka,然后写完eureka注册中心,然后写另一个微服务去注册,结果在这里就遇到了坑。

错误日志如下:

(没了。。。。)


崩溃,还想记得,以后再看看,。。。结果它突然好了,汗。

我做了什么呢?我就是在maven上给eureka client加了一个版本号,然后它跑通了,我就马上“高兴”地想记录下来,结果我把那行删除,它还是能正常跑通。

(为什么高兴加个双引号?因为我不知道它是怎么解决的,甚至说是它自己无缘无故的好的,我还是没有解决它的能力。但是从结果上看,我又确实解决了这个问题。)


记一记核心的东西。

首先,在本服务中,

application.yml

eureka:
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/
  instance:
    prefer-ip-address: true
spring:
  application:
    name: third-part-index-data-project

pom.xml

这里就是加了那个client的版本,就好了!

<?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">
    <parent>
        <artifactId>trend</artifactId>
        <groupId>com.tanjiaming99</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>third-part-index-data-project</artifactId>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>

        <!--spring mvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- eureka-client -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <!--没加这行之前,它报错了。。-->
<!--            <version>3.0.3</version>-->
        </dependency>
    </dependencies>
</project>

然后别的就没有了,还有一个启动类,没了。


注册中心中:

我在注册中心关于eureka的配置如下,你看那个url也有对应上,为什么就报错了呢。

eureka:
  instance:
    # 这个是要访问的地址,不是名字
    hostname: 127.0.0.1
  client:
    # 是否要注册自己,它本身就是服务器,不用注册
    # 这里没有搭集群,单点
    register-with-eureka: false
    fetch-registry: false
    # 自己作为服务器的地址,后续谁要注册的时候,就用这个
    # 也等价于http://localhost:8761/eureka/
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

父工程中:

想到与maven有关,那我就把主的maven也贴出来,其实真的没啥东西啊,很干净,就是不知道为什么会有这个错误,汗。。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <modules>
        <module>eureka-server</module>
        <module>third-part-index-data-project</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.tanjiaming99</groupId>
    <artifactId>trend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>trend</name>

    <dependencies> 
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

算了有、气,下次遇到了再记录下来吧,之前似乎也有试过这样的,太迷了。网上什么循环依赖啥的都没用啊,遇到问题还得自己搞搞。