概述
eureka微服务架构在生产环境部署会出现服务意外宕机的情况,根据eureka的服务注册监听可以实现对服务下线的监听,通过腾信的短信接口发送短信通知(可根据业务需要更改)
@Component
public class EurekaStateChangeListener {
//服务下线监听
@EventListener(condition = "#eurekaInstanceCanceledEvent.replication==false")
public void listen(EurekaInstanceCanceledEvent eurekaInstanceCanceledEvent) {
String serviceName = eurekaInstanceCanceledEvent.getAppName();
String serverId = eurekaInstanceCanceledEvent.getServerId();
//通知对象
ArrayList<String> strings = new ArrayList<>();
strings.add("188****0284");
strings.add("158****3362");
strings.add("150****2140");
}
public void sendNode(String serviceName,String serverId,ArrayList<String> strings,Boolean aBoolean) {
int appid = 14****6761; // 1400开头
// 短信应用SDK AppKey
String appkey = "5************************88a1c7a";
// 签名
String smsSign = "****";
try {
int templateId = 187713;
SmsMultiSender msender = new SmsMultiSender(appid, appkey);
SmsMultiSenderResult result = msender.send(0, "86", strings,
" 服务中心"+serviceName+"下线,"+serverId+"。", "", "");
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
}
//服务注册监听
@EventListener (condition = "#event.replication==false")
public void listen(EurekaInstanceRegisteredEvent event) {
InstanceInfo instanceInfo = event.getInstanceInfo();
System.out.println(instanceInfo.getAppName());
}
最后
以上就是魁梧芒果为你收集整理的EUREKA检测服务是否下线的全部内容,希望文章能够帮你解决EUREKA检测服务是否下线所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复