Eureka注册中心踩坑记录
关于Eureka的注册。。网上指导良莠不齐,踩坑多次,略有收获,记录。
使用https://start.spring.io的spring模板
创建注册中心
项目依赖的选择:Cloud Discovery-->Eureka Server
SpringBoot版本我选择2.0.8在项目的入口类添加注解@EnableEurekaServer来声明注册中心。
如果项目pom为红色,且入口类的注解为无色,那么需要右键add as maven project 。
删除掉application.properties,新建application.yml,里面的配置为:
server:
port: 8761
eureka:
instance:
hostname: localhost
server:
enable-self-preservation: false # 关闭自我保护模式(默认为打开)
eviction-interval-timer-in-ms: 5000 # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
启动入口类,访问http://localhost:8761即可进入eureka的界面,可以发现没有实例。
创建提供者
再次新建一个module,依赖选择还需要一个web的原因是需要新建一个controller作为测试类
将项目的启动类修改如下:
@SpringBootApplication
@EnableEurekaClient
@RestController
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class, args);
}
@Value("${server.port}")
private String port;
@Value("${spring.application.name}")
private String serviceName;
@RequestMapping("/info")
public String getInfo(){
return "i'am"+serviceName+",from port"+port;
}
}
配置文件同样是application.yml,它的配置:
server:
port: 8762
spring:
application:
name: service-hi2
eureka:
instance:
lease-renewal-interval-in-seconds: 5 # 心跳时间,即服务续约间隔时间(缺省为30s)
lease-expiration-duration-in-seconds: 15 # 发呆时间,即服务续约到期时间(缺省为90s)
client:
registry-fetch-interval-seconds: 10 # 拉取服务注册信息间隔(缺省为30s)
service-url:
defaultZone: http://localhost:8761/eureka/
进入http://localhost:8761可看到它作为实例存在,进入http://localhost:8762/info可以看到输出的name和port信息。
至此,完成Eureka注册中心的相关配置