当前位置: 首页 >> 发展
Hystrix请求合并的使用(二)_当前短讯
来源:腾讯云     时间:2023-04-10 05:07:01


【资料图】

步骤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请求合并的使用(二)_当前短讯 接下来,我们将创建一个名为“GetDataCollapserExecutor”的类,该类用于执行Hystrix请求合并器:
天天观焦点:Apple Store员工从客户的iPhone窃取了一张亲密照片后被解雇 最近AppleStore员工从客户的iPhone窃取了一张亲热照片后被解雇这个话题,相信很多小伙伴都是非常有兴趣了解的
世界观速讯丨GQY视讯:公司将在提升内部管理促进工作效能提升的同时,更积极主动应对市场机会 GQY视讯(300076)04月09日在投资者关系平台上答复了投资者关心的问题。投资者:您好董秘!!日前河南联通与开封市
【世界报资讯】传承!王治郅:我14岁穿52码鞋,郑海霞送我鞋穿,后来姚明也穿 传承!王治郅:我14岁穿52码鞋,郑海霞送我鞋穿,后来姚明也穿,姚明,军衔,王治郅,郑海霞,易建联,中国男...
全球即时:北方将现大范围大风沙尘局地有沙尘暴 多地降温可达10℃至12℃ 据中央气象台消息,4月9日至11日,受冷空气和蒙古气旋影响,我国北方地区将出现大范围大风、沙尘天气过...
与费鸿泰面谈 蒋万安:有共识|环球微速讯 国民党台北市第7选区“立委”党内初选,现任“立委”费鸿泰与挑战者台北市议员徐巧芯竞争激烈,台北市长...
Brook+Wilde Elite床垫评论通过这款出色的豪华混合动力车选择您的硬度偏好 Brook+WildeElite提供了您想要的混合床垫的完美平衡:弹簧的弹跳力和记忆泡沫鞋面恰到好处地贴合您的身...
世界百事通!你敢信人族三法谗言相加居然能混五个单位了? 人族三法可以混五个单位了,你敢信吗 玩家朋友们大家好,我是清扬,平时给大家展示各种玩法,记录游...
光明时评:新引进实体书店最高奖励50万,是个积极的尝试-环球微速讯 近日,江苏省无锡市出台推动文化高质量发展的若干政策。明确表示,对新引进有一定品牌知名度和影响力的...
成熟男士礼物送什么好 不要送的东西,有钱就不如送一个皮带吧,皮带,这些都可以的。送礼最好送成双成对,可以送一些成对的礼...
当前动态:寒武系页岩地层首次钻获高产气藏 寒武系页岩地层首次钻获高产气藏---经济日报北京4月8日讯(记者王轶辰)8日,中国石油西南油气田公司部...
【世界说】皮尤报告:美国未成年人涉枪死亡两年内猛增 50% 近半数家长担心孩子遭枪击-天天新要闻 中国日报网4月7日电皮尤研究中心6日发布了一项根据美国疾病控制与预防中心(CDC)最新年度死亡统计数据...
BLG决胜局机器人,前期险些崩盘,OMG巨大失误,辅助直接害死队友_焦点观察 BLG与OMG的败者组比赛进入到最后决胜局的较量,双方围绕下路做文章,OMG第一波获胜的情况下,下路出现巨...
招商蛇口:一季度累计签约销售金额722.66亿元 4月7日,招商蛇口发布2023年3月销售及近期购得土地使用权情况简报的公告。  据公告内容,2023年3月,...
当前短讯!传奇世界怀旧版官网1.76下载_传奇世界怀旧版官网 1、这个版本已经很久没有出现过了,印象中应该属于07年08年。2、传世老了,马上就十年了,但一直是我心...
苏轼是哪个朝代的诗人三苏是指_苏轼是哪个朝代的诗人 1、宋朝,或说北宋。2、  苏轼(1037年1月8日—1101年8月24日),字子瞻,又字和仲,号东坡居士,自号道人,世
焦点快报!梅山老年人健康体检启动 “村里通知有体检,我一大早就来了。”梅港村贺大伯说道,“现在的政策是一年比一年好,体检项目也越来...
3月末我国外汇储备规模增至31839亿美元 天天最资讯 新华社北京4月7日电国家外汇管理局7日发布数据显示,截至2023年3月末,我国外汇储备规模为31839亿美元,较2月末
播恩集团:公司的主营业务为饲料的研发、生产和销售,主要产品为猪用饲料,目前未生产宠物饲料 播恩集团00136604月08日在投资者关系平台上答复了投资者关心的问题投资者尊敬的董秘麻烦您在白忙之中告...
加速度2023 | 旅游市场持续回暖背后的创新与信心 春风和煦,万物复苏。当下多地正迎来踏青好时节,人们纷纷走出家门,“赏花游”“采茶游”等新玩法、新...
焦点速看:B站停更,一场早有预演的剧本? “像何同学这样愿意拿出150多天精心打磨一个作品的创作者已越来越少,但内容创作成本是巨大的,只讲情怀...
西游记第二回概括250字作文_西游记第二回概括_世界热闻 1、●第二回悟彻菩提真妙理断魔归本合元神悟空从祖师学得长生之道、七十二般变化及“筋斗云”。2、一日...
圆的面积怎么算_你记住了吗-天天热消息 1、圆的面积:S=r2,S=(d 2)2,(d为直径,r为半径,为圆周率,通常为3 14),圆的面积公式是古代数学家不断
若有轮回转世,那为什么还要祭祀上坟,祖先能收到吗? 肺中有七魄,肝藏有三魂,脾和人的思绪有关。在这里解释一下这个:胎光决定了人的身体好坏,人胎光有问...
天天最资讯丨瑞可达: 2023年第二次临时股东大会决议公告 瑞可达:2023年第二次临时股东大会决议公告

广告

X 关闭

广告

X 关闭