服务熔断: 一般是指软件系统中,由于某些原因使得服务出现了过载现象,为防止造成整个系统故障,从而采用的一种保护措施,熔断也可以称为过载保护
服务降级: 当服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此缓解服务器的压力,以保证核心任务的进行。同时保证部分甚至大部分任务客户能得到正确的响应。也就是当前的请求处理不了了或者出错了,给一个默认的返回。
两者其实从某些角度看是有一定的类似性的:
而两者的区别也是明显的:
具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包(request collapsing),以及监控和配置等功能
如何使用,请参考以前的博文
Spring Cloud【Finchley】-08使用Hystrix实现容错
Spring Cloud【Finchley】-09Feign使用Hystrix
Spring Cloud【Finchley】-10Hystrix监控
Spring Cloud【Finchley】-11Feign项目整合Hystrix监控
Spring Cloud【Finchley】-12使用Hystrix Dashboard实现Hystrix数据的可视化监控
数据库的瓶颈:
切库的基础:读写分离 ( 主库/从库)
自定义注解完成数据库切库:见以前的博文
Spring Boot2.x-09 基于Spring Boot 2.1.2 + Mybatis使用自定义注解实现数据库切换
Spring Boot2.x-10 基于Spring Boot 2.1.2 + Mybatis 2.0.0实现多数据源,支持事务
任务调度系统分布式: elastic-job + zookeeper , 请参考 elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)
主备切换: apache curator + zookeeper 分布式锁实现 ,请参考 ZooKeeper + Curator 实现分布式锁