使用版本Finchley.M9,不同版本对应的组件依赖名称不同。
1、添加maven依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.M9</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
2、创建Application启动类
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3、添加配置项
spring.application.name=house
server.port=9294
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka
4、新增事件监听,创建监听类实现ApplicationListener接口
(1)监听注册事件
@Configuration
public class InstanceRegisterListener implements ApplicationListener<EurekaInstanceRegisteredEvent> {
private static final Logger LOGGER = LoggerFactory.getLogger(InstanceRegisterListener.class);
@Override
public void onApplicationEvent(EurekaInstanceRegisteredEvent eurekaInstanceRegisteredEvent) {
if (eurekaInstanceRegisteredEvent.getInstanceInfo().getStatus().equals(InstanceInfo.InstanceStatus.DOWN)) {
LOGGER.error("服务:{},挂掉了", eurekaInstanceRegisteredEvent.getInstanceInfo().getAppName());
}else if (eurekaInstanceRegisteredEvent.getInstanceInfo().getStatus().equals(InstanceInfo.InstanceStatus.UP)) {
LOGGER.info("服务:{},注册成功", eurekaInstanceRegisteredEvent.getInstanceInfo().getAppName());
} else {
LOGGER.error("服务:{},STATUS = {}", eurekaInstanceRegisteredEvent.getInstanceInfo().getAppName(), eurekaInstanceRegisteredEvent.getInstanceInfo().getStatus());
}
}
}
(2)监听心跳上报事件
@Configuration
public class InstanceRenewListener implements ApplicationListener<EurekaInstanceRenewedEvent> {
private static final Logger LOGGER = LoggerFactory.getLogger(InstanceRenewListener.class);
@Override
public void onApplicationEvent(EurekaInstanceRenewedEvent event) {
LOGGER.info("心跳检测服务:{}" ,event.getInstanceInfo().getAppName());
}
}