Hystrix熔断器整合 - 服务隔离之信号量隔离

实战前需了解:https://blog.csdn.net/wanzijy/article/details/125041622
Hystrix熔断器整合 - 搭建项目:https://blog.csdn.net/wanzijy/article/details/125496651
Hystrix熔断器整合 - 请求缓存:https://blog.csdn.net/wanzijy/article/details/125512072
Hystrix熔断器整合 - 请求合并:https://blog.csdn.net/wanzijy/article/details/125579664
Hystrix熔断器整合 - 服务隔离之线程池隔离:https://blog.csdn.net/wanzijy/article/details/125630353
Hystrix熔断器整合 - 服务隔离之信号量隔离:https://blog.csdn.net/wanzijy/article/details/125826690
Hystrix熔断器整合 - 服务熔断和服务降级:https://blog.csdn.net/wanzijy/article/details/125826853
Hystrix熔断器整合 - Feign实现服务容错:https://blog.csdn.net/wanzijy/article/details/125985304
Hystrix熔断器整合 - 可视化界面三部曲:https://blog.csdn.net/wanzijy/article/details/126005452

1. 修改 ProductServiceImpl

以下操作均在 order-service-rest 模块中进行

@HystrixCommand(commandProperties = {
	@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "5000"),  //  超时时间,默认 1000ms
	@HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_STRATEGY, value = "SEMAPHORE"),  //  信号量隔离,这里不配的话,隔离策略就是线程池隔离
	@HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_SEMAPHORE_MAX_CONCURRENT_REQUESTS, value = "6")  //  信号量最大并发,调小一些方便模拟高并发
    }, fallbackMethod = "selectProductListFallback")
@Override
public List<Product> selectProductList() {
	System.out.println(Thread.currentThread().getName() + "------selectProductList------");
	return restTemplate.exchange(
		"http://product-service/product/list",
		HttpMethod.GET,
		null,
		new ParameterizedTypeReference<List<Product>>() {
	}).getBody();
}

2. 测试

去 Apache JMeter 继续执行上面实战中写好的高并发请求:“ http://localhost:9090/order/1/product/list ”

然后访问:http://localhost:9090/order/1/product/list

此时浏览器一定会返回在线程池隔离实战中没有出现的托底数据
在这里插入图片描述

在线程池隔离实战中没有出现托底数据,是因为浏览器在和我们的 Apache JMeter 进行资源的竞争时,竞争到了资源,即在队列排队的时候,竞争到了资源,所以我们没有办法看到返回的托底数据

但是信号量隔离不会产生上面线程池隔离的情况,因为信号量隔离使用的是一个计数器,一旦计数器的值到达上限,那么剩下的全部都会去执行回调方法,从而返回托底数据,不存在什么资源的竞争

3. @HystrixCommand 参数

@HystrixCommand 参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LF3_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值