关于Spring Cloud Eureka对服务的上下线监控(重点),续约,注册,启动等

关于Spring Cloud Eureka对服务的上下线监控(重点),续约,注册,启动等

项目上监听各个服务宕机后的信息,提供eureka的5个监听器
EurekaInstanceCanceledEvent 服务下线事件
EurekaInstanceRegisteredEvent 服务注册事件
EurekaInstanceRenewedEvent 服务续约事件
EurekaRegistryAvailableEvent Eureka注册中心启动事件
EurekaServerStartedEvent Eureka Server启动事件

Eureka服务端的配置

server:
  port: 8081
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
      #关闭自我保护,开发和测试环境可以关闭,生产环境建议打开,防止网络不好时删除了可用服务。
      enable-self-preservation: false
      #清理间隔
      eviction-interval-timer-in-ms: 5000

Eureka事件监听类

package com.itmuch.cloud.EurekaListener;

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 sunbohu
 * @create 2018-11-15 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 启动");
    }
    
}

实际项目要根据需求做相应的通知,这里只是简单记录。

客户端配置

spring:
  application:
    name: member
eureka:
  instance:
  #这里的instance配置一定要写,不然导致服务下线无法被监听,因为服务下线后eureka没有将该服务踢出
    # 每间隔5s,向服务端发送一次心跳,证明自己依然可用存活
    lease-renewal-interval-in-seconds: 5
    # 告诉服务端,如果我10s之内没有给你发心跳,就代表我的服务下线了变成不可用,将我踢出掉。
    lease-expiration-duration-in-seconds: 10
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/
server:
  port: 8082
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值