EUREKA检测服务是否下线

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());

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值