今天开始学习Eureka,但是按照网上配置好环境之后,发现了下面两个问题,特别记录下来。

  1. Eureka的home页面不显示
  2. 界面正常显示,但是显示没有注册的服务
  3. 别的项目怎么进行注册

一、Eureka的home页面不显示

先看看最后的效果吧
在这里插入图片描述
直接显示Whitelable Error Page 错误
这里需要核查下面几个问题:

(1) pom.xml文档中jar包的引入
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  </dependency>

一定要引入这个server的依赖

(2).yml或者propertity文件的配置

放上我最后正常的配置

eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
eureka.instance.prefer-ip-address=true

spring.application.name=service-zuul

zuul.routes.users.url=http://localhost:8761/
zuul.routes.users.path=/**
zuul.ignored-headers=Access-Controller-Allow-Credentials, Access-Control-Allow-Origin
#心跳提醒时间与最后的截止时间
zuul.host.connect-timeout-millis=10000000
zuul.host.socket-timeout-millis=10000000

server.port=8761

spring.freemarker.prefer-file-system-access=false

这边容易出错的就是Eureka的端口,这个端口并不是随便定义的,而是 8761

server.port=8761
这个服务的端口也要写上,这个是随便写的,尽量别和其他项目的服务冲突。

(3) 启动类的注解

@EnableEurekaServer

这个注解一定要添加到启动类上面,不然他不能起到一个Eureka服务器的作用。
基本上确定三点之后

地址中输入:http://127.0.0.1:8761/

页面就能正常显示了
效果如下:
在这里插入图片描述
大家可以看到这个红框地方无服务,引入第二个问题。

二、界面正常显示,但是显示没有注册的服务

一般来说,Eureka自己可以注册自己,所以至少都会识别到自己这个IP的服务,不可能出现O服务注册的情况
这里需要添加配置进配置文件中

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

false表示防止Eureka自己调用自己,true表示允许调用。

配置这样之后,就会发现当前服务已经进入到服务框体中了
在这里插入图片描述
这样子之后,第二个问题已经解决了,那如果我想别的项目服务也注册在这个注册中心里面呢,看看第三个部分。

三、别的项目怎么进行注册

首先需要构建一个客户端项目。
在这里插入图片描述
创建一个springboot项目,毕竟springCloud是基于Sringboot的,

在添加依赖环节中,可以直接选定Eureka Discovery Client构建一个客户端环境
在这里插入图片描述
创建成功之后,pom.xml文件就会产生这两个依赖

<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-client</artifactId>
</dependency>

根据上面服务端的配置,客户端配置如下:

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/

spring.application.name=client
#心跳提醒时间与最后的截止时间
zuul.host.connect-timeout-millis=10000000
zuul.host.socket-timeout-millis=10000000

server.port=8760

spring.freemarker.prefer-file-system-access=false

切记 server.port 是不同的,不然会启动冲突,

同样要让当前服务能被Eureka检测到,所以前两行,不能减少

接下来,就到了启动类的配置了,这次需要添加两个依赖

@EnableEurekaClient
@RestController

至此,启动之后,就可以在页面看到这个服务的注册信息了。
在这里插入图片描述

分享到这里就完成啦


THE END
GOOD LUNCK

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐