Spring Cloud Eureka 服务上下线监控

原创 2018年04月17日 17:16:36

之前我们有介绍通过Spring Boot Admin来检测服务的上下线,然后进行通知功能。

文章:http://cxytiandi.com/blog/detail/13376

今天为大家介绍另外一种实现的方式,在Eureka服务中进行检测通知,Eureka中提供了事件监听的方式来支持扩展。

  • EurekaInstanceCanceledEvent 服务下线事件
  • EurekaInstanceRegisteredEvent 服务注册事件
  • EurekaInstanceRenewedEvent 服务续约事件
  • EurekaRegistryAvailableEvent Eureka注册中心启动事件
  • EurekaServerStartedEvent Eureka Server启动事件
import com.netflix.appinfo.InstanceInfo;
import org.springframework.cloud.netflix.eureka.server.event.*;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

/**
 * Eureka事件监听
 *
 * @author yinjihuan
 * @create 2018-03-09 13:45
 **/
@Component
public class EurekaStateChangeListener {

    @EventListener
    public void listen(EurekaInstanceCanceledEvent event) {
        System.err.println(event.getServerId() + "\t" + event.getAppName() + " 服务下线");
    }

    @EventListener
    public void listen(EurekaInstanceRegisteredEvent event) {
        InstanceInfo instanceInfo = event.getInstanceInfo();
        System.err.println(instanceInfo.getAppName() + "进行注册");
    }

    @EventListener
    public void listen(EurekaInstanceRenewedEvent event) {
        System.err.println(event.getServerId() + "\t" + event.getAppName() + " 服务进行续约");
    }

    @EventListener
    public void listen(EurekaRegistryAvailableEvent event) {
        System.err.println("注册中心 启动");
    }

    @EventListener
    public void listen(EurekaServerStartedEvent event) {
        System.err.println("Eureka Server 启动");
    }

}

上面只是演示事件的效果,具体在什么事件中需要做什么操作,需要发邮件还是发短信,需要大家自己去实现。

注意:在Eureka集群环境下,每个节点都会触发事件,这个时候需要控制下发送通知的行为,不控制的话每个节点都会发送通知。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010889990/article/details/79977741

Spring Cloud 实现微服务在Eureka的手动上下线

为了更加方便的管理在Eureka上注册的微服务,项目专门搭建了一个微服务管理后台,并在该后台页面上提供了一个控制服务状态的类似于上下线的功能。在服务代码中自动注入ApplicationInfoMana...
  • qq_28685573
  • qq_28685573
  • 2018-03-26 14:40:14
  • 50

SpringCloud服务如何在Eureka安全优雅的下线

如果直接KILL SpringCloud的服务,因为Eureka采用心跳的机制来上下线服务,会导致服务消费者调用此已经kill的服务提供者然后出错,处理这种情况有2中方案。 一、利用Spring...
  • wuyanshen2012
  • wuyanshen2012
  • 2017-12-01 10:30:39
  • 501

Spring cloud服务如何做到优雅下线

利用Spring Boot Actuato的管理端点 本地搭建了一个HA的Eureka server注册中心: 修改服务提供者的pom.xml添加依赖 org.springfra...
  • yang920106
  • yang920106
  • 2018-01-17 10:05:12
  • 245

一起来学SpringCloud之 - 优雅关闭服务下线(Jetty)

在很多时候 kill -9 pid并不是很友好的方法,那样会将我们正在执行请求给断掉,同时eureka 中服务依旧是处于在线状态,这个时候我们可以使用官方提供的actuator来做优雅的关闭处理...
  • memmsc
  • memmsc
  • 2017-09-28 14:04:24
  • 2872

Spring Cloud系列一 之 eureka服务注册中心

服务发现:Eureka客户端服务发现是微服务架构中的一项核心服务。如果没有该服务,我们就只能为每一个服务调用者手工配置可用服务的地址,这不仅繁琐而且非常容易出错。Eureka包括了服务端和客户端两部分...
  • Message_lx
  • Message_lx
  • 2017-02-23 19:53:37
  • 916

spring eureka 服务实例实现快速下线快速感知快速刷新配置解析

背景默认的Spring Eureka服务器,服务提供者和服务调用者配置不够灵敏,总是服务提供者在停掉很久之后,服务调用者很长时间并没有感知到变化。或者是服务已经注册上去了,但是服务调用方很长时间还是调...
  • zhxdick
  • zhxdick
  • 2017-11-17 14:32:31
  • 3715

springcloud服务已经关但是Eureka还是显示up

该状态持续很久,访问该服务也返回错误,但在注册中心界面,该服务却一直存在,且为UP状态,并且在大约十分钟后,出现一行红色大字:EMERGENCY! EUREKA MAY BE INCORRECTLY ...
  • qq_32971807
  • qq_32971807
  • 2016-12-30 18:02:26
  • 8048

Spring Boot Admin监控服务上下线邮件通知

微服务架构下,服务的数量少则几十,多则上百,对服务的监控必不可少。如果是以前的单体项目,启动了几个项目是固定的,可以通过第三方的监控工具对其进行监控,然后实时告警。在微服务下,服务数量太多,并且可以随...
  • u010889990
  • u010889990
  • 2018-01-03 09:35:52
  • 318

为你的spring cloud微服务添加宕机邮件通知

在恶劣线上环境中,我们最担心的是服务挂掉,每当这个时候,运维就想吃柠檬(CNM)了,一些运维工具也可以实现这个功能,但是,既然用了spring cloud,就可以享受它带来的福利吧。 此功能基于sp...
  • rickiyeat
  • rickiyeat
  • 2017-06-14 14:48:55
  • 5639

Spring cloud系列五 Eureka 之集群同步、自我保护模式以及实例注册、心跳、下线

1. 概述本文在上文 Spring cloud系列四 Eureka 之概述和服务注册中心集群的基础上,继续介绍Eureka新的内容: 集群重要类:PeerAwareInstanceRegistryIm...
  • hry2015
  • hry2015
  • 2017-10-15 22:45:48
  • 1997
收藏助手
不良信息举报
您举报文章:Spring Cloud Eureka 服务上下线监控
举报原因:
原因补充:

(最多只允许输入30个字)