Eureka注册中心踩坑记录

关于Eureka的注册。。网上指导良莠不齐,踩坑多次,略有收获,记录。

使用https://start.spring.io的spring模板

 

创建注册中心

项目依赖的选择:Cloud Discovery-->Eureka Server

SpringBoot版本我选择2.0.8Eureka注册中心踩坑记录在项目的入口类添加注解@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,依赖选择Eureka注册中心踩坑记录还需要一个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注册中心的相关配置