springcloud Eureka设置服务下线上线事件通知
最近由于微服务会莫名其妙挂掉,导致一些服务宕机;
固所以寻找解决办法,莫名宕机暂时还未查明原因,先人肉解决办法
Eureka的server端会发出5个事件通知,分别是:
EurekaInstanceCanceledEvent 当有服务下线时会执行
EurekaInstanceRegisteredEvent 当有服务注册时会执行
EurekaInstanceRenewedEvent 当有服务续约时会执行
EurekaRegistryAvailableEvent Eureka注册中心启动执行
EurekaServerStartedEvent Eureka Server启动时执行
由于Eureka拥有自我保护机制,当其注册表里服务因为网络或其他原因出现故障而关停时,Eureka不会剔除服务注册,而是等待其修复。这是AP的一种实现。
我们可以采取关闭此功能,让其剔除不健康节点,从而导致执行EurekaInstanceCanceledEvent事件
服务端
eureka:
server:
#设为false,关闭自我保护
enableSelfPreservation: false
#检测间隔(单位毫秒,默认是1分钟)
evictionIntervalTimerInMs: 4000
客户端
eureka:
instance:
#租期更新时间间隔 (单位秒,默认30秒)
leaseRenewalIntervalInSeconds: 10
#租期到期时间 (单位秒,默认90秒)
leaseExpirationDurationInSeconds: 30
#开启健康检查(需要spring-boot-starter-actuator依赖)
client:
healthcheck: enabled
注意:更改Eureka更新频率将打破服务器的自我保护功能
现在开始说eureka服务端代码事件
之前博客有集成邮件的,在此略过。。直接上代码
在Eureka server里直接添加就行
/**
* eureka状态改变监听器
*
* @Author zyt
* @Date 2018/10/29 10:15
*/
@Component
public class EurekaStateChangeListener { private static final Logger logger = LoggerFactory.getLogger(EurekaStateChangeListener.class); /** 区分生产环境 */
@Value("${spring.profiles.active}")
String active; /**
* 服务下线事件
* @param event
*/
@EventListener
public void listenDown(EurekaInstanceCanceledEvent event){
if (active.equals("production")) {
// 发送邮件
logger.info(MarkerFactory.getMarker("DOWN"), "服务ID:" + event.getServerId() + "\t" +
"服务实例:" + event.getAppName() + "\t服务下线");
}
logger.info(event.getServerId() + "\t" + event.getAppName() + "服务下线");
}
里面加了个判断,当为生产环境时则发送邮件
/**
* 服务注册事件
* @param event
*/
@EventListener
public void listenDown(EurekaInstanceRegisteredEvent event){
InstanceInfo instanceInfo = event.getInstanceInfo();
logger.info(MarkerFactory.getMarker("DOWN"), instanceInfo.getAppName() + "服务注册");
}
springcloud Eureka设置服务下线上线事件通知的更多相关文章
- Eureka 中服务下线的几种方式
原文:https://blog.csdn.net/qq_15071263/article/details/85276486#1_6 Eureka 中服务下线的几种方式1.直接停掉服务根据默认的策略,如 ...
- 《springCloud系列》——Eureka 进行服务治理
整理一下: @EnableEurekaServer 注册中心 @EnableDiscoveryClient 提供服务 @EnableFeignClients 消费者(Feign特有的,而且他自带断路器 ...
- Eureka服务下线(Cancel)源码分析
Cancel(服务下线) 在Service Provider服务shut down的时候,需要及时通知Eureka Server把自己剔除,从而避免其它客户端调用已经下线的服务,导致服务不可用. co ...
- 优雅关闭服务下线(Jetty)
在很多时候 kill -9 pid并不是很友好的方法,那样会将我们正在执行请求给断掉,同时eureka 中服务依旧是处于在线状态,这个时候我们可以使用官方提供的actuator来做优雅的关闭处理 - ...
- SQL Server 事件通知(Event notifications)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) 事件通知监控DDL(NotifyQue ...
- 9.5 dubbo事件通知机制
dubbo事件通知机制:http://dubbo.io/books/dubbo-user-book/demos/events-notify.html 一.使用方式 两个服务: DemoService: ...
- dubbo事件通知机制(1)
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. dubbo事件通知机制:http://dubbo.io/books/dubbo-user-book/demos ...
- 基于Eureka的服务治理
代码地址如下:http://www.demodashi.com/demo/11927.html 一.服务的注册与发现 关系调用说明: 服务生产者启动时,向服务注册中心注册自己提供的服务 服务消费者启动 ...
- 【一起学源码-微服务】Nexflix Eureka 源码十:服务下线及实例摘除,一个client下线到底多久才会被其他实例感知?
前言 前情回顾 上一讲我们讲了 client端向server端发送心跳检查,也是默认每30钟发送一次,server端接收后会更新注册表的一个时间戳属性,然后一次心跳(续约)也就完成了. 本讲目录 这一 ...
随机推荐
- go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时])
目录 go微服务框架kratos学习笔记五(kratos 配置中心 paladin config sdk [断剑重铸之日,骑士归来之时]) 静态配置 flag注入 在线热加载配置 远程配置中心 go微 ...
- easyUI dataGrid主从表点击展开问题
昨天在公司写代码遇到了一个问题,就是在用easyUI做主从表的时候在查询之后点击展开的时候不能再次展开了.先说一下主从表我也是第一次用 效果如下图: 然后点击前面的小加号出现以下效果: 然而遇到了一个 ...
- 洛谷$P4585\ [FJOI2015]$火星商店问题 线段树+$trie$树
正解:线段树+$trie$树 解题报告: 传送门$QwQ$ $umm$题目有点儿长我先写下题目大意趴$QwQ$,就说有$n$个初始均为空的集合和$m$次操作,每次操作为向某个集合内加入一个数$x$,或 ...
- $loj\ 2031\ [SDOI2016]$数字配对 网络流
正解:网络流 解题报告: 我永远喜欢$loj$! 显然先预处理哪些$a$之间可以连边,然后考虑建两排点,连流量为$c_{i}\cdot c_{j}$,然后$ST$连$inf$,跑个费用流? 然后现在碰 ...
- 「洛谷P1080」「NOIP2012提高组」国王游戏 解题报告
P1080 国王游戏 题目描述 恰逢 \(H\)国国庆,国王邀请\(n\)位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 \( ...
- 共识网络BFT-SMaRt:理论与实践
目录 BFT-SMaRt 简介 分布式计数器服务 功能描述 组网配置 启动节点 常见问题 计数服务 容错服务 BFT-SMaRt 理论 BFT-SMR 典型模式 SMR 状态机复制 VP-Consen ...
- Spring中的ApplicationListener扩展使用
ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在Applica ...
- iSO垂直滑动条VerticalSlider
由于项目需要实现一个垂直的Slider,滑动条使用UIlabel实现,按钮使用UIButton,按钮可以设置背景图片,代码如下 VerticalSlider.h // // VerticalSlide ...
- IDEA 2019.2及以下版本永久激活教程(亲测可用)
写在前面 由于最近jetbrains公司开始严厉打击盗版激活码,所以导致一大批激活码失效,我身边的小伙伴对于如此苦恼,但是由于考虑到正版费用还是比较高昂的前提下,所以鉴于此,遂将之前整理的jar包激活 ...
- C#支付宝支付接口H5版(手机网页支付)
接口官方文档 https://docs.open.alipay.com/203/107090/ 首先在Nuget 安装 Alipay /// <summary> /// 支 ...