微服务 – Spring Cloud – Hystrix
一、Hystrix 简介
hystrix是Netlifx开源的一款容错框架,防雪崩利器,具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能。
Hystrix is no longer in active development, and is currently in maintenance mode.
Hystrix 已经停更
二、Hystrix 的作用
- 服务降级
- 服务熔断
- 服务限流
三、Hystrix使用场景
- 服务超时
- 服务宕机(服务崩掉、机房断电、服务故障等)
- 线程打满
- 高并发场景
- 等等
四、功能点简介
1、服务降级
服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行
2、服务熔断
某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用.
3、服务降级VS服务熔断
相同点:
- 目标一致 都是从可用性和可靠性出发,为了防止系统崩溃;
- 用户体验类似 最终都让用户体验到的是某些功能暂时不可用;
不同点:
- 触发原因不同 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑
4、服务限流
只允许指定数量的事务进入系统处理,超过的部分将被拒绝服务,排队或者降级处理
五、功能点使用
1、服务降级
eureka服务
payment8001服务
order服务
将payment8001注册到eureka服务中心.以供order服务调用
1.1、新建hysteria-payment服务
pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
配置文件application.yaml
server:
port: 8001
spring:
application:
name: cloud-provider-hystrix-payment
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
主启动类 HystrixMain8001.java文章来源:https://www.toymoban.com/news/detail-502042.html
@SpringBootApplication
@EnableEurekaClient
public class HystrixMain8001 {
public static void main(String[] args) {
SpringApplication.run(HystrixMain8001.class, args);
}
}
servicel逻辑层文章来源地址https://www.toymoban.com/news/detail-502042.html
@Service
public class PaymentService {
/**
* 正常访问 ok
* @param id
到了这里,关于微服务 – Spring Cloud – Hystrix的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!