在一些業務場景下,需要對服務的上下線進行監控,比如上下線都需要進行郵件通知,可以通過eureka提供的事件監聽的方式來實現;
支持的事件:
- urekaInstanceCanceledEvent 服務下線事件
- EurekaInstanceRegisteredEvent 服務注冊事件
- EurekaInstanceRenewedEvent 服務續約事件
- EurekaRegistryAvailableEvent Eureka 注冊中心啟動事件
- EurekaServerStartedEvent Eureka Server 啟動事件
Eureka監聽器使用
@Component
public class EurekaStateChangeListener {
@EventListener
public void listen(EurekaInstanceCanceledEvent event){
System.out.println(event.getServerId()+"\t"+event.getAppName()+"服務下線");
}
@EventListener
public void listen( EurekaInstanceRegisteredEvent event){
InstanceInfo instanceInfo = event.getInstanceInfo();
System.out.println(instanceInfo.getAppName()+"進行注冊");
}
@EventListener
public void listen(EurekaInstanceRenewedEvent event){
System.out.println(event.getServerId()+"\t"+event.getAppName()+"服務進行續約");
}
@EventListener
public void listen(EurekaRegistryAvailableEvent event){
System.out.println("注冊中心啟動");
}
@EventListener
public void listen(EurekaServerStartedEvent event){
System.out.println("Eureka Server啟動");
}
}
注意
在Eureka集群環境下,每個節點都會觸發事件,這個時候需要控制下發送通知的行為,不控制的話每個節點都會發送通知。