Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 409|回复: 3

SpringCloud之异常报警通知(八)

[复制链接]
  • TA的每日心情
    奋斗
    昨天 16:00
  • 签到天数: 755 天

    [LV.10]以坛为家III

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    707348
    发表于 2021-6-19 16:00:03 | 显示全部楼层 |阅读模式

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

    • order-service

      • pom.xml

         <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-redis</artifactId>
          </dependency>
      • 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<String, Object> data = new HashMap<>();
        18         data.put("code", 0);
        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", 20, TimeUnit.SECONDS);
        38             }else{
        39                 System.out.println("已经发送过短信,20秒内不重复发送");
        40             }
        41 42         }).start();
        43 44 45         Map<String, Object> msg = new HashMap<>();
        46         msg.put("code", -1);
        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 = 2147483647
    feign 调用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秒内不重复发送

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-28 16:21
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    224

    帖子

    216

    积分

    新手用户

    Rank: 1

    积分
    216
    发表于 2021-6-28 08:34:13 | 显示全部楼层
    谢谢楼主的辛苦分享
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-27 07:18 , Processed in 0.064969 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表