diff --git a/ace-center/pom.xml b/ace-center/pom.xml
index 16b5c72f81a3c832fbae5113279408ba33f235a5..a28e6fb63b6cbb548a725d1b6919b5c0f2a2c646 100644
--- a/ace-center/pom.xml
+++ b/ace-center/pom.xml
@@ -41,6 +41,14 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
com.spotify
docker-maven-plugin
diff --git a/ace-center/src/main/java/com/github/wxiaoqi/security/center/listener/EurekaInstanceCanceledListener.java b/ace-center/src/main/java/com/github/wxiaoqi/security/center/listener/EurekaInstanceCanceledListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..2cd9a17f94f99aba82799e3f0e55e7008828f00a
--- /dev/null
+++ b/ace-center/src/main/java/com/github/wxiaoqi/security/center/listener/EurekaInstanceCanceledListener.java
@@ -0,0 +1,58 @@
+package com.github.wxiaoqi.security.center.listener;
+
+import com.netflix.discovery.shared.Applications;
+import com.netflix.eureka.EurekaServerContextHolder;
+import com.netflix.eureka.registry.PeerAwareInstanceRegistry;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceCanceledEvent;
+import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent;
+import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRenewedEvent;
+import org.springframework.cloud.netflix.eureka.server.event.EurekaRegistryAvailableEvent;
+import org.springframework.context.ApplicationEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import java.util.Objects;
+
+/**
+ * 用于监听Eureka服务停机通知
+ *
+ * @author HeHaoyang
+ * @create 2017-09-12 12:00
+ **/
+@Configuration
+@Slf4j
+@EnableScheduling
+public class EurekaInstanceCanceledListener implements ApplicationListener {
+
+ @Override
+ public void onApplicationEvent(ApplicationEvent applicationEvent) {
+ //服务挂掉自动通知
+ if(applicationEvent instanceof EurekaInstanceCanceledEvent){
+ EurekaInstanceCanceledEvent event = (EurekaInstanceCanceledEvent)applicationEvent;
+ //获取当前Eureka示例中的节点信息
+ PeerAwareInstanceRegistry registry = EurekaServerContextHolder.getInstance().getServerContext().getRegistry();
+ Applications applications = registry.getApplications();
+ //便利获取已注册节点中与当前失效节点ID一致 的节点信息
+ applications.getRegisteredApplications().forEach(registryApplication -> {
+ registryApplication.getInstances().forEach(instance -> {
+ if(Objects.equals(instance.getInstanceId(),event.getServerId())){
+ log.info("服务:{}挂啦。。。",instance.getAppName());
+ }
+ });
+ });
+ }
+ if(applicationEvent instanceof EurekaInstanceRegisteredEvent){
+ EurekaInstanceRegisteredEvent event = (EurekaInstanceRegisteredEvent)applicationEvent;
+ log.info("服务:{}注册成功啦。。。",event.getInstanceInfo().getAppName());
+ }
+ if (applicationEvent instanceof EurekaInstanceRenewedEvent) {
+ EurekaInstanceRenewedEvent event = (EurekaInstanceRenewedEvent) applicationEvent;
+ log.info("心跳检测服务:{}。。。" ,event.getInstanceInfo().getAppName());
+ }
+ if (applicationEvent instanceof EurekaRegistryAvailableEvent) {
+ log.info("服务 Aualiable。。。");
+ }
+ }
+}