您好,欢迎来到刀刀网。
搜索
您的当前位置:首页SpringCloud之异常报警通知(八)

SpringCloud之异常报警通知(八)

来源:刀刀网
SpringCloud之异常报警通知(⼋)

在之前整合降级的基础上,整合redis,达到报警的效果(redis的启动还是之前boot⾥⾯整合的redis)

order-service

pom.xml

org.springframework.boot

spring-boot-starter-data-redis

application.yml

spring:

application:

name: order-service redis:

port: 6379

host: 192.168.180.113 timeout: 2000

修改web层,添加redis的逻辑

1 @RestController

2 @RequestMapping(\"/api/v1/order\") 3 public class OrderController { 4 5 6 @Autowired(required = false)

7 private ProductOrderServiceImpl productOrderService; 8 9 @Autowired

10 private StringRedisTemplate redisTemplate;11 12 13 @RequestMapping(\"/save\")

14 @HystrixCommand(fallbackMethod=\"saveOrderFail\")

15 public Object save(@RequestParam(\"user_id\")int userId, @RequestParam(\"product_id\") int productId, HttpServletRequest request){16 17 Map data = new HashMap<>();18 data.put(\"code\);

19 data.put(\"data\", productOrderService.save(userId, productId));20 return data;21 }22 23 24 //注意,⽅法签名⼀定要要和api⽅法⼀致

25 private Object saveOrderFail(int userId, int productId, HttpServletRequest request){26 27 28 //监控报警

29 String saveOrderKye = \"save-order\";30 31 String sendValue = redisTemplate.opsForValue().get(saveOrderKye);32 final String ip = request.getRemoteAddr();33 new Thread( ()->{

34 if (StringUtils.isBlank(sendValue)) {

35 System.out.println(\"紧急短信,⽤户下单失败,请离开查找原因,ip地址是=\"+ip);36 //发送⼀个http请求,调⽤短信服务 TODO

37 redisTemplate.opsForValue().set(saveOrderKye, \"save-order-fail\, TimeUnit.SECONDS);38 }else{

39 System.out.println(\"已经发送过短信,20秒内不重复发送\");40 }41 42 }).start();43 44 45 Map msg = new HashMap<>();46 msg.put(\"code\);

47 msg.put(\"msg\抢购⼈数太多,您被挤出来了,稍等重试\");48 return msg;49 }50 51 52 }

测试:

2019-10-19 20:56:11.880 INFO 20020 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProperty : Flipping property: product-service.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 21474837feign 调⽤product-service findbyid 异常

2019-10-19 20:56:12.771 INFO 20020 --- [ HystrixTimer-1] io.lettuce.core.EpollProvider : Starting without optional epoll library

2019-10-19 20:56:12.774 INFO 20020 --- [ HystrixTimer-1] io.lettuce.core.KqueueProvider : Starting without optional kqueue library已经发送过短信,20秒内不重复发送

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务