SpringCloud-Hystrix服务治理
创始人
2024-01-17 15:17:20

简介

Hystrix是用于服务熔断容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

服务降级

当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。消费者端服务提供者端都可以配置。服务降级一般使用在服务提供者端

服务降级维度

  • 超时服务器变慢
  • 程序出错(服务器宕机,程序编写错误等)

服务降级配置

①搭建项目

  •  ​​​​​以consul为注册中心搭建spring cloud项目 
  •  用OpenFeign实现服务调用

②服务提供者端导入依赖

        org.springframework.cloudspring-cloud-starter-netflix-hystrix

③启动类添加注解,激活hystrix组件

@EnableHystrix
@EnableDiscoveryClient
@SpringBootApplication
public class ProviderConsul8001{public static void main(String[] args) {SpringApplication.run(ProviderConsul8001.class, args);}
}

④编写业务,方法上添加@HystrixCommand,实现降级

@RestController
@RequestMapping("provider")
public class ProviderController {@Value("${server.port}")private String port;@GetMapping("getUUID")//业务处理时间超过2500毫秒 或者 该代码块发生错误 就调用自定义降级方法@HystrixCommand(fallbackMethod = "getUUIDFallback", commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2500")})public String getUUID() {try {//沉睡3秒钟TimeUnit.SECONDS.sleep(3);} catch (Exception e) {}return port + " : " + UUID.randomUUID();}//自定义降级方法public String getUUIDFallback() {return port;}
}

⑤测试

全局服务降级配置

 ①编写业务,类上添加@DefaultProperties,方法上添加@HystrixCommand,实现降级

@RestController
@RequestMapping("provider")
//业务处理时间超过2500毫秒 或者 该代码块发生错误 就调用自定义降级方法
@DefaultProperties(defaultFallback = "defaultFallback", commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2500")
})
public class ProviderController {@Value("${server.port}")private String port;@GetMapping("getUUID")@HystrixCommandpublic String getUUID() {int i = 10 / 0;try {TimeUnit.SECONDS.sleep(3);} catch (Exception e) {}return port + " : " + UUID.randomUUID();}//自定义全局降级方法public String defaultFallback() {return port;}
}

②测试

 

FeignFallback服务降级

①消费端导入依赖

        org.springframework.cloudspring-cloud-starter-netflix-hystrix

②编辑application.yml配置文件,添加以下配置

feign:#允许fallbackhystrix:enabled: true

③创建Service的实现类,添加@Component注解。用Service的实现类来服务降级

@Component
public class ConsumerServiceImpl implements IConsumerService {@Overridepublic String getUUID() {return "fallback";}
}

④Service接口的@FeignClient注解增加fallback 属性

@Component
@FeignClient(value = "cloud-provider",fallback = ConsumerServiceImpl.class)
public interface IConsumerService {//服务提供者访问路径@GetMapping("/provider/getUUID")public String getUUID();
}

⑤只启动注册中心,启动消费者,访问http://localhost/consumer/getUUID

服务熔断

服务限流

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
怎么样消灭臭虫 臭虫用什么药消... 奔奔虫控|被吸血臭虫骚扰的滋味,你体会过吗?相信被臭虫骚扰过的人都不想再体验一次了吧?那么臭虫应该怎...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...