笔记

5、熔断降级服务异常报警通知实战
    简介:完善服务熔断处理,报警机制完善

1、加入redis依赖
        <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、使用

//监控报警
        String saveOrderKye = "save-order";
        String sendValue = redisTemplate.opsForValue().get(saveOrderKye);
        final String ip = request.getRemoteAddr();
        new Thread( ()->{
            if (StringUtils.isBlank(sendValue)) {
                System.out.println("紧急短信,用户下单失败,请离开查找原因,ip地址是="+ip);
                //发送一个http请求,调用短信服务 TODO
                redisTemplate.opsForValue().set(saveOrderKye, "save-order-fail", 20, TimeUnit.SECONDS);
            }else{
                System.out.println("已经发送过短信,20秒内不重复发送");
            }
        }).start();

开始

发送短信的key存储在Redis里面,5分钟后自动失效。失效后继续发送短信。


这里不再讲解Redis的安装步骤,本机默认已经安装好了。
下图是已经加压过的redis的包

mac本机启动redis的服务

启动成功后,spring boot链接redis

1、加入redis依赖
        <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

加入maven的依赖

加上注释

指定Redis的链接信息
我们在application的下面去配置

会有快捷键的提示

选择这个

会生成这段代码

输入h再去选择host

生成 host。

输入por选择

生成port默认的端口是6379

最后还有一个timeout

最终配置

注入redis


写完以上代码发现这是一个同步的调用,调用完了再会继续往下走。所以我们需要创建一个线程去做。
用一个lamada表达式去做。

开一个子线程去发送短信。不影响我们整个流程

重新启动服务进行测试。把productService服务关闭


多次刷新页面访问

高并发的情况下 可以用redis的锁的机制,自行搜索

在方法多加一个参数 

我们可以输出ip地址,这样可以判断是哪台服务器出现了问题

小D课堂 - 新版本微服务springcloud+Docker教程_5-05熔断降级服务异常报警通知的更多相关文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_4-04 高级篇幅之服务间调用之负载均衡策略调整实战

    笔记 4.高级篇幅之服务间调用之负载均衡策略调整实战     简介:实战调整默认负载均衡策略实战 自定义负载均衡策略:http://cloud.spring.io/spring-cloud-stati ...

  2. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  3. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下

    笔记 4.Feign结合Hystrix断路器开发实战<下>     简介:讲解SpringCloud整合断路器的使用,用户服务异常情况     1.feign结合Hystrix       ...

  5. 小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析

    笔记 3.高级篇幅之Zuul常用问题分析和网关过滤器原理分析 简介:讲解Zuul网关原理和过滤器生命周期,           1.路由名称定义问题         路由映射重复覆盖问题        ...

  6. 小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上

    笔记 3.Feign结合Hystrix断路器开发实战<上>     简介:讲解SpringCloud整合断路器的使用,用户服务异常情况 1.加入依赖          注意:网上新旧版本问 ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务

    笔记 5.微服务调用方式之feign 实战 订单调用商品服务     简介:改造电商项目 订单服务 调用商品服务获取商品信息         Feign: 伪RPC客户端(本质还是用http)    ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务

    笔记 2.微服务调用方式之ribbon实战 订单调用商品服务     简介:实战电商项目 订单服务 调用商品服务获取商品信息         1.创建order_service项目         2 ...

  9. 小D课堂 - 新版本微服务springcloud+Docker教程_5-06 高级篇幅之深入源码

    笔记 6.高级篇幅之深入源码剖析Hystrix降级策略和调整     简介:源码分析Hystrix降级策略和调整 1.查看默认讲解策略 HystrixCommandProperties        ...

随机推荐

  1. NORDIC 错误文件

    ble_err.h sdk_errors.h nrf_error.h app_error.h

  2. 010.简单查询、分组统计查询、多表连接查询(sql实例)

    -------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...

  3. Jmeter官方插件实现Dubbo接口测试

    目前主流的分布式框架有Dubbo和SpringCloud, SpringCloud是基于Http协议的分布式框架,Dubbo是基于RPC的分布式框架,Jmeter没有内置对Dubbo接口的支持,很难直 ...

  4. bootstrap 表单验证 dem

    地址:http://www.jq22.com/yanshi522 一些api详解:http://blog.csdn.net/u013938465/article/details/53507109 ht ...

  5. [Educational Codeforces Round 63 ] D. Beautiful Array (思维+DP)

    Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array time limit per test 2 seconds ...

  6. CSS世界中那些说起来很冷的知识

    CSS世界中那些说起来很冷的知识 最近读了张鑫旭的新书<CSS世界>收获了不少对CSS的深度理解 也正值个人在公司内部进行部分章节的内容分享,于是顺带着直接把我即将分享的内容先给大家过过目 ...

  7. pandas df 遍历行方法

    pandas 遍历有以下三种访法. iterrows():在单独的变量中返回索引和行项目,但显着较慢 itertuples():快于.iterrows(),但将索引与行项目一起返回,ir [0]是索引 ...

  8. mysql你问我答

    1.尊敬的先生,请您谈谈mysql数据库的引擎 数据库中的表设定了什么存储引擎,那么该表在数据存储方式.数据更新方式.数据查询性能以及是否支持索引等方面就会有不同的“效果”. mysql引擎大致分两类 ...

  9. [Javascript] How to deal with floating number

    What's your expect of the output?: console.log(0.1 + 0.2 === 0.3); The answer is 'false'. Because: 0 ...

  10. 【Android Studio】 加载so文件异常

    AS无法加载so包异常 android studio导入so包异常:Couldn't load DeviceAPI from loader dalvik.system.PathClassLoader[ ...