成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SpringCloud Hystrix高并發下實現請求合并

開發 架構
Spring Cloud通過Hystrix實現請求合并,減輕高并發時的請求線程消耗、降低請求響應時間的效果。今天就來聊一聊Hystrix請求合并的實現方式。

前言

在高并發的場景下,前端會有大量的訪問請求。如果一個請求就需要打開一個數據庫連接,操作完數據庫后再進行關閉,無形中對數據造成很大的開銷。請求合并是將多個單個請求合并成一個請求,去調用服務提供者提供的服務接口,再遍歷合并的結果為每個合并前的單個請求設置返回結果。Spring Cloud通過Hystrix實現請求合并,減輕高并發時的請求線程消耗、降低請求響應時間的效果。今天就來聊一聊Hystrix請求合并的實現方式。

實現方式

由于是高并發場景,因此準備了SpringCloud微服務框架。準備了注冊中心、網關、服務提供者、服務消費者等組件。

導入依賴

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

啟動類上增加注解

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

實現請求合并,Service中代碼如下:

//請求合并的方法  合并5s內的請求
@HystrixCollapser(batchMethod = "mergeGet", scope = com.netflix.hystrix.HystrixCollapser.Scope.GLOBAL, collapserProperties = {@HystrixProperty(name = "timerDelayInMilliseconds", value = "5000")})
public Future<Item> get(String id) {
log.info("======執行了get方法========" + id);
return null;
}

//合并請求之后調用的方法
@HystrixCommand
public List<Item> mergeGet(List<String> ids) {
log.info("===合并開始===");
List<Item> items = ids.stream().map(
x -> {
Item item = new Item();
item.setId(Integer.valueOf(x));
item.setName("商品 :" + x);
return item;
}

).collect(Collectors.toList());
log.info("===合并結束,合并 {} 條 請求====", ids.size());
return items;
}

?說明:調用get方法,如果5s內get有多次調用,則合并后mergeGet方法。

controller調用代碼如下:

@RequestMapping(value = "/find/{id}")
public Item find(@PathVariable String id) throws InterruptedException, ExecutionException {
HystrixRequestContext context = HystrixRequestContext.initializeContext();
Future<Item> items = itemService.get(id);
System.out.println(items.get());
context.close();
return items.get();
}

執行

執行127.0.0.1:8080/find/11,同時執行127.0.0.1:8080/find/22,保證兩個請求在5s內發出。

返回結果

說明:

  • scope = com.netflix.hystrix.HystrixCollapser.Scope.GLOBAL:將所有線程中多次服務調用進行合并
  • scope = com.netflix.hystrix.HystrixCollapser.Scope.REQUEST:對一次請求的多次服務調用進行合并
責任編輯:姜華 來源: 今日頭條
相關推薦

2017-12-01 08:54:18

SpringCloudHystrix

2014-08-08 13:30:44

Nginx

2013-01-30 10:12:24

NginxNginx優化高并發

2022-06-12 06:45:26

高并發防重

2025-02-20 00:01:00

2022-12-08 08:27:18

HystrixQPS數據

2019-10-30 16:54:08

golangredis數據庫

2024-10-31 09:04:20

Spring高并發

2025-05-27 03:33:00

Spring高并發接口

2020-07-15 08:14:12

高并發

2017-11-27 08:50:29

架構數據存儲

2020-09-23 22:36:27

分布式架構系統

2025-02-26 08:20:18

2021-10-28 09:36:12

高并發數據實踐

2019-11-08 08:40:29

Java高并發流量

2025-03-21 06:20:00

連接池系統數據庫

2024-11-26 07:29:57

高并發線程安全

2021-03-28 09:45:05

冪等性接口數據

2021-07-01 06:58:12

高并發訂單號SCM

2023-08-25 08:06:20

CPUMySQL線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天玩夜夜操 | 中国毛片免费 | 国产日韩欧美精品一区二区三区 | 成人在线观看免费视频 | 精品国产一区二区三区性色 | 久久久精品天堂 | 亚洲三级在线 | 精品久久国产 | 天堂一区二区三区 | 亚洲综合久久久 | 国产精品区二区三区日本 | 日韩av一区二区在线观看 | 日韩免费视频一区二区 | 国产精品一区二区久久久久 | 一区二区在线免费观看 | 在线成人一区 | 亚洲一二三区在线观看 | 99精品在线免费观看 | 又爽又黄axxx片免费观看 | 91偷拍精品一区二区三区 | 国产精品毛片在线 | 99精品国产一区二区三区 | 国产在线一区二 | 亚洲一区在线日韩在线深爱 | k8久久久一区二区三区 | 国产精品福利网站 | 国产精品婷婷 | 国产一级片91 | 天天插天天干 | 99在线免费视频 | 亚洲精品一区国产精品 | 国产亚洲网站 | 91成人在线视频 | www.亚洲精品 | 黄色毛片大全 | 日韩在线大片 | 天天色天天射天天干 | 2019天天操| 免费观看的av毛片的网站 | 日韩精品久久久久久 | 毛片av免费在线观看 |