SpringCloud配置中心以及熔断

查看代码详细:https://blog.csdn.net/qq_43868329/article/details/103627679

雪崩效应

包结构
在这里插入图片描述
Cloud01Contriller中创建两个路径

@RestController
public class Cloud01Contriller {

@Resource
private MemberService memberService;
    @RequestMapping("/getOrderByMember")
    public String getOrderByMember(){
        return memberService.getMember();
    }
    @RequestMapping("/getOrderInfo")
    public String getOrderInfo(){
        return "getOrderInfo";
    }
}

application.yml

##应用名称
spring:
  application:
    name: eureka02
##声明当前eurekaserver的端口号
server:
  port: 8893

  tomcat:
    max-threads: 50
##配置eureka
eureka:
  client:
    ##配置地址
    service-url:
      defaultZone: http://localhost:8888/eureka
##配置ribbon读取时间
ribbon:
  ReadTimeout: 15000
  ConnectTimeout: 15000
##开启断路器
feign:
  hystrix:
   enabled: true

##因为我们在members服务中线程休眠3s,服务调用默认超过1s当做调用失败,那么就会执行服务降级的类,我们可以配置服务响应时间
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 4000

MemberServiceFallBack

import org.springframework.stereotype.Component;

/**
 * 本地服务
 */
@Component
public class MemberServiceFallBack implements MemberService {
    @Override
    public String getMember() {
        return "服务降级";
    }
    //MemberService

}

启动类

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class cloud
{
    public static void main( String[] args )
    {

        SpringApplication.run(cloud.class, args);
    }
}

打开apache-jmeter-2.13\bin\jmeter.bat
在这里插入图片描述
编写线程数
在这里插入图片描述
右键线程组
在这里插入图片描述
在这里插入图片描述
点击上方启动绿色启动标,然后在浏览器就可以查看效果
在这里插入图片描述

Rest方式实现熔断

导入依赖

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.2.3.RELEASE</version>
        </dependency>
package com.zzc.Cloud02Controller;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.zzc.service.MemberService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController
public class Cloud01Contriller {

     @Resource
    private RestTemplate restTemplate;

    @RequestMapping("/getCloudByMember")
    //如果运行中断回运行getCloudHystrix方法
    @HystrixCommand(fallbackMethod ="getCloudHystrix")
    public String getCloudByMember(){
        return  restTemplate.getForObject("http://eureka02/doSome",String.class);
    }

    public String getCloudHystrix(){
        return "服务中断";
    }
}

在启动类中添加@EnableHystrix注解,添加负载均衡
在这里插入图片描述
可以吧application.yml中
feign:
hystrix:
enabled: true
注释掉不然可能报错,因为在启动类中的@EnableHystrix注解就是开启断炉器,如果两个都开起就重复了
在这里插入图片描述

运行测试
可以先注释下面这个
在这里插入图片描述
运行结果
在这里插入图片描述

加hystrix:。。。结果
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值