Hystrix请求合并的使用(二)
腾讯云 2023-04-09 13:14:13


(相关资料图)

步骤4:创建Hystrix请求合并器执行器

接下来,我们将创建一个名为“GetDataCollapserExecutor”的类,该类用于执行Hystrix请求合并器:

@Servicepublic class GetDataCollapserExecutor {    private final ExternalService externalService;    @Autowired    public GetDataCollapserExecutor(ExternalService externalService) {        this.externalService = externalService;    }    @HystrixCollapser(batchMethod = "execute",            collapserProperties = {                    @HystrixProperty(name = "timerDelayInMilliseconds", value = "100")            })    public Future> getData(String key) {        GetDataCollapser getDataCollapser = new GetDataCollapser(externalService, key);        return getDataCollapser.queue();    }    @HystrixCommand    public Map execute(List keys) {        Map resultMap = new HashMap<>();        for (String key : keys) {            GetDataCollapser getDataCollapser = new GetDataCollapser(externalService, key);            resultMap.putAll(getDataCollapser.execute());        }        return resultMap;    }}

如上所述,我们的GetDataCollapserExecutor类包含以下内容:

构造函数:该函数用于注入ExternalService实例。getData()方法:该方法使用@HystrixCollapser注解进行注释,该注解指定了一个名为“execute”的批量执行方法。在此示例中,我们将timerDelayInMilliseconds属性设置为100毫秒,这意味着如果100毫秒内有多个请求,则它们将被合并为单个请求。execute()方法:该方法使用@HystrixCommand注解进行注释,该注解指定了Hystrix请求合并器执行逻辑。在此示例中,我们遍历请求参数列表,并为每个请求创建一个GetDataCollapser实例。最后,我们将所有结果合并到一个HashMap中,并将其返回。

步骤5:测试Hystrix请求合并器

现在,我们可以测试Hystrix请求合并器是否按预期工作。我们将创建一个名为“DataController”的类,并将其用于向客户端公开API:

@RestControllerpublic class DataController {    private final GetDataCollapserExecutor getDataCollapserExecutor;    @Autowired    public DataController(GetDataCollapserExecutor getDataCollapserExecutor) {        this.getDataCollapserExecutor = getDataCollapserExecutor;    }    @GetMapping("/data")    public Map getData(@RequestParam List keys) throws ExecutionException, InterruptedException {        List>> futures = new ArrayList<>();        for (String key : keys) {            futures.add(getDataCollapserExecutor.getData(key));        }        Map resultMap = new HashMap<>();        for (Future> future : futures) {            resultMap.putAll(future.get());        }        return resultMap;    }}

如上所述,我们的DataController类包含以下内容:

构造函数:该函数用于注入GetDataCollapserExecutor实例。getData()方法:该方法使用@GetMapping注解进行注释,该注解指定了API的URL路径和请求方法。在此示例中,我们使用@RequestParam注解将请求参数列表注入方法参数,并使用Future和get()方法来获取Hystrix请求合并器的返回值。

现在,我们可以使用Postman或类似的工具向API发送HTTP请求,并检查是否成功合并了多个请求。例如,我们可以向http://localhost:8080/data发送具有以下查询参数的GET请求:

?keys=key1&keys=key2&keys=key3

这将使用Hystrix请求合并器执行三个请求,并将其结果合并到单个响应中。

步骤6:启动应用程序并测试

现在,我们可以启动应用程序并测试它是否按预期工作。我们可以通过运行以下命令来启动应用程序:

mvn spring-boot:run

应用程序启动后,我们可以使用Postman或类似的工具向API发送HTTP请求,并检查是否已成功使用Hystrix请求合并器合并了多个请求。例如,我们可以向http://localhost:8080/data发送具有以下查询参数的GET请求:

?keys=key1&keys=key2&keys=key3

如果一切正常,我们将看到以下响应:

{    "key1": "Data for key1",    "key2": "Data for key2",    "key3": "Data for key3"}

这表明Hystrix请求合并器已成功执行三个请求并将其结果合并到单个响应中。

Hystrix请求合并的使用(二)

2023-04-09 13:14:13

科技特派团“精准滴灌”促发展_全球通讯

2023-04-09 11:13:50

哈尔滨铁路明日起实行新列车运行图 环球今热点

2023-04-09 10:03:44

西安一男子买毛坯房空置十年 被邻居砸墙把露台门封了 当前速递

2023-04-09 07:52:05

泰康保险陈东升:解决长寿时代的根本问题是筹资问题|热闻

2023-04-09 05:58:25

观察:北京中小学生高尔夫球比赛引争议,网友自嘲乡下人,这是仇富吗?

2023-04-09 00:09:17

注意!4月16日,延庆香营女子“半马”,这些道路请绕行

2023-04-08 21:02:35

三国名将排行典韦_三国名将排行

2023-04-08 18:52:38

全球速读:ivy是什么意思啊_ivy是什么意思

2023-04-08 16:56:47

造谣“加班怒怼领导”,煽动公众情绪当休矣 世界消息

2023-04-08 13:54:18

张彬彬是中国大陆著名演员,整理了张彬彬在《奔跑吧》期数和集数 全球新视野

2023-04-08 11:55:01

美国银行:3月非农可能促使美联储在5月加息,随后暂停加息|全球头条

2023-04-08 10:22:26

海南航空计划4月20日起恢复运营广州至台北航线

2023-04-08 09:01:48

我的音乐盒有什么用(我的音乐盒)|环球最新

2023-04-08 07:11:03

【世界快播报】秋葵属于寒性食物吗,秋葵吃了会拉肚子吗(秋葵吃了会拉肚子吗)

2023-04-08 04:57:02

家属收到勒索信息前,女孩已遇害 三名犯罪嫌疑人已被温州警方刑拘

2023-04-07 23:12:46

产业旺 村民富 乡村兴——从西卡学村幸福蝶变看西藏乡村振兴

2023-04-07 21:32:17

谁说汉中的油菜花结束了?略阳县这处油菜花开得正灿烂呢! 当前快讯

2023-04-07 20:12:28

天龙八部的剧情概括_天龙八部的剧情_全球观点

2023-04-07 18:52:37

环球精选!深陷空头围剿 道明银行(TD.US)前景不容乐观

2023-04-07 18:01:00

北京丰台90多处边角地变城市美景 天天观热点

2023-04-07 17:00:13

焦点热议:A股市场震荡走高:成交连续4日超万亿元,沪指逼近年内高点

2023-04-07 15:55:09

爱朋医疗(300753)4月7日主力资金净卖出117.10万元

2023-04-07 15:24:43

波子汽水怎么取出弹珠 视频_波子汽水怎么取出弹珠

2023-04-07 14:09:51

2023自然资源部遴选和选调公务员面试递补公告_全球热资讯

2023-04-07 12:54:54

天天观速讯丨周五(4月7日)COMEX黄金最新库存量数据

2023-04-07 11:56:40

今日聚焦!提振消费新机遇——蓝鲨学堂新消费访学广州站 | 圆满成功

2023-04-07 11:08:02

天天新消息丨「金隅望京·云尚」本周六开售楼处 有的户型面积变了

2023-04-07 10:30:04

天天热讯:科创板融资余额增加16.04亿元

2023-04-07 08:47:47

党建融合联动 形成治理合力(基层治理新实践)-每日快播

2023-04-07 07:08:00

每日技巧分享:文字转语音软件哪个好?

2023-04-07 05:15:27

最新:空调除湿和制冷晚上哪个费电?

2023-04-07 01:05:04

中国金茂一季度签约销售额约442亿元-当前消息

2023-04-06 21:55:55

焦点日报:2022物业年报盘点·每股基本盈利|上市物企去年每股基本盈利整体下滑 6家为负值

2023-04-06 20:36:54

今日视点:泛糖科技:今日广西白糖现货成交价为6420元/吨 上涨60元/吨

2023-04-06 19:06:15

居全国首位,北京获命名的全国法治政府示范地区和项目数达12个

2023-04-06 18:26:39

科技小院“上新”|环球今头条

2023-04-06 17:11:02

上海交大有个计算机“神仙班”,640名毕业生直博率92%_每日聚焦

2023-04-06 16:36:54

国家税务总局:2022年税费优惠政策累计惠及超过8000万经营主体

2023-04-06 16:05:54

2场6球,金球奖之争变天!黑马强势杀出,姆总退出,梅西恐遭逆转

2023-04-06 14:55:11

方正电机:拟向公司原控股股东一致行动人中振汉江转让方正湖北100%股权

2023-04-06 13:52:44

嘀嗒出行实时路况在哪里开启 世界焦点

2023-04-06 12:19:14

【环球播资讯】李春英任菏泽市副市长、代市长

2023-04-06 11:26:07

90年代动画片大全少儿经典_90年代动画片大全 环球观焦点

2023-04-06 11:00:23

越秀地产一季度销售额约438亿元,完成年度目标的33%-当前快讯

2023-04-06 10:17:27

量化私募大佬喊话三六零:估计很快要定增了!两年前49亿定增套牢17家参与者

2023-04-06 09:29:15

古老非遗实力“圈粉”!“风和日丽过清明”非遗展演展示活动在河北博物院举办 时快讯

2023-04-06 08:20:51

环球热资讯!比表面积是什么意思怎么理解_比表面积是什么意思

2023-04-06 06:58:34

日本福岛核电站一反应堆底座大范围受损,1 号机组调查视频公布

2023-04-06 04:37:13

2014高考满分作文大全_2014高考满分作文

2023-04-05 23:07:00

世界微动态丨固态硬盘接口图解_固态硬盘接口

2023-04-05 21:10:54

右玉县气象局解除道路结冰黄色预警【Ⅲ级/较重】-天天速看料

2023-04-05 19:13:07

申请破产!暴跌90%

2023-04-05 17:41:14

同人壁纸插画分享136

2023-04-05 16:16:59

equ是什么意思_equ_世界速看

2023-04-05 14:43:19

每斤25元左右 莼菜少量上市

2023-04-05 13:02:23

天天观焦点:骑士锁定东部前四将战尼克斯 自2018年詹姆斯离队后首度达成50胜

2023-04-05 11:08:11

第六届中国西部兔业专题展暨创新发展论坛将在杨凌举行

2023-04-05 09:50:08

热点评!销量攀升!超1000万中国人每月至少吃1次!或将供不应求

2023-04-05 08:50:34

精彩看点:注册电气工程师报名时间_注册电气工程师报考条件

2023-04-05 06:50:03

天天微速讯:【了不起的小店】“贵州娃娃”原创手办店 用潮玩传播红色文化

2023-04-05 04:55:34

齐川寨之战_齐川龙一真实照片 环球热点

2023-04-05 00:43:52

天天速读:今日辟谣(2023年4月4日)

2023-04-04 21:57:42

风流才子唐伯虎,一生到底发生了什么,迫使他装疯卖傻?-今日报

2023-04-04 21:01:06

当前快报:湖北利川:以监督促监管 筑牢校园食品安全屏障

2023-04-04 19:13:36

三江县气象台发布雷电黄色预警信号【III级/较重】

2023-04-04 18:12:52

每日观点:《疯狂原始人》观后感_读后感350字 观第三届道德模范评选领

2023-04-04 17:18:21

品高股份:股东广州旌德拟减持不超2%

2023-04-04 16:43:56

即时焦点:桂东:服务就业不打烊 乡村振兴有动能

2023-04-04 15:56:53

“北跨”再加速,经开人的城市“会客厅”圆满完工!

2023-04-04 14:56:14

打造全球消费精品展示交易平台——第三届中国国际消费品博览会将在海口举办

2023-04-04 13:56:11

自我效能简单地说就是信心正确吗_自我效能简单地说就是信心

2023-04-04 12:46:53

环球今头条!清明前夕为儿子肖思远扫墓,肖胜松:准备了他喜欢吃的东西

2023-04-04 12:06:45

电脑插画学习

2023-04-04 11:11:00

北京市文化市场综合执法总队发布旅游防范须知

2023-04-04 10:26:11

天天观点:美股迎来抄底良机?美银情绪指标接近触发买入信号

2023-04-04 09:51:24

天天动态:少城时代陈雪凝_少城时代ceo

2023-04-04 08:57:16

美被爆用间谍软件监控墨西哥,白宫禁止,政府部门还在用!_世界百事通

2023-04-04 07:55:47

山西与北京“双一流”高校合作交流活动在并举行

2023-04-04 06:30:18

普利制药:公司中选的注射用伏立康唑为0.2g*1支/盒

2023-04-04 04:49:38

好看的生肉日本漫画网站视频大全_好看的生肉日本漫画网站视频|全球观天下

2023-04-04 00:59:11

全球新动态:说话是一门艺术,酒桌上的“潜台词”,你能听懂多少?

2023-04-03 21:57:22

金和协同oa手机版_金和oa破解

2023-04-03 20:41:45

今日最新!小灵通退出日本市场 一个时代结束了!

2023-04-03 19:37:02

央行:贷款总体需求指数为78.4% 比上季上升19.0个点

2023-04-03 18:48:08

宫崎骏蒸汽男孩_蒸汽男孩

2023-04-03 17:44:27

“Doinb已经人神共愤”,解说直播怒批,笑笑1个动作回敬Doinb

2023-04-03 16:57:54

环球快讯:《csgo2》怎么进行内测

2023-04-03 16:18:42

2023年4月番:地狱乐 製作委员会 成员 报资讯

2023-04-03 14:30:45

奈雪的茶发布2022年业绩公告:年营收约43亿元

2023-04-03 13:43:41

今日观点!高盛:中国加快资本市场改革令A股市场更具“可投资性”

2023-04-03 13:00:19

世界微动态丨谍战剧《无间》开播热度不及预期

2023-04-03 12:11:50

世界时讯:有你在我身后_关于父爱的满分作文700字 浙江中考满分作文:

2023-04-03 11:50:04

南兴股份4月3日快速上涨 天天最资讯

2023-04-03 11:08:38

【世界热闻】格力13类产品、18项标准上榜2022年全国企业标准“领跑者”

2023-04-03 10:42:36

环球信息:造房子要像造汽车一样量化生产?20年后谁去住?

2023-04-03 10:18:16

新消息丨京广速递发的是什么快递 京广速递是假物流吗

2023-04-03 09:57:14

古代给先生的中秋礼物

2023-04-03 09:32:27

普通遗传学实验_对于普通遗传学实验简单介绍_天天热议

2023-04-03 09:25:20

当前头条:沪港高铁恢复开行 双“珠”再次通过铁路相连

2023-04-03 09:08:55