今天跟着学习视频敲了一个eureka服务注册的demo,却死活无法把服务注册到注册中心,反反复复核对了一下代码,发现没有什么不一样
依赖相同:
服务端依赖:
<!-- eureka server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
客户端依赖:
<!-- eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
yml配置:
服务端:
eureka:
instance:
# eureka 服务端实例名称
hostname: localhost
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
客户端yml:
eureka:
client:
#表示是否将自己注册进EurekaServer 默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetch-registry: true
service-url:
#设置与eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址
defaultZone: http://localhost:7001/eureka/
服务端启动类:
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class,args);
}
}
客户端启动类:
@EnableEurekaClient
@SpringBootApplication
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class, args);
}
}
百度一番,发现这是一个老问题了,按照别人的说法还是无法解决。
后面重新建了一个项目,重新写了一遍就可以了,之前无法注册的原因是client端的@EnableEurekaClient注解不生效,根本没有往注册中心里注册,后面注册成功的时候可以看到在Client端的启动信息里有向eurekaServer端注册的信息。