使用redis和thread告警并避免重复告警

spring cloud使用redis 增加监控,微服务的监控体系特别重要,这里增加了告警(使用thread异步告警),同时不能短时间内不能重复告警(使用redis避免重复)

1、增加依赖

            <dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

2、配置redis服务信息

redis:

     database: 0

     host: 127.0.0.1

     port: 6379

     timeout: 2000

3、使用redis

    在controller包下的类中增加

@Autowired

private StringRedisTemplate stringRedisTemplate;//引入redis

        

        并在saveOrderFail类中增加监控发短信伪代码

         //增加监控报警

String saveOrderKey="saveOrderKey";

String sendString =stringRedisTemplate.opsForValue().get(saveOrderKey);

//使用异步调用,启动一个异步线程,thread

new Thread(()->{

if (StringUtils.isBlank(sendString)){

System.out.println(saveOrderKey+"服务存在问题,请及时处理!");

//这里是伪代码, 实际情况为调用一个http请求调用短信服务,即可发送短信告警

stringRedisTemplate.opsForValue().set(saveOrderKey, "save -order-fail",20, TimeUnit.SECONDS);

//20秒内不重复发送,生产中一般使用分钟或者小时

}

else

{

System.out.println(saveOrderKey+"服务存在问题,已经告警不再重复告警!");

}

}).start();

        

 

        

猜你喜欢

转载自www.cnblogs.com/programer-xinmu78/p/10541083.html