您的位置:首页 >快讯 >

Hystrix请求合并的使用(一)

2023-04-10 15:39:02    来源:腾讯云


【资料图】

在分布式系统中,有时我们需要同时发起多个请求,而这些请求可能需要在客户端进行合并。这可以减少网络开销和客户端线程使用量,并提高系统性能。Hystrix提供了请求合并功能,可以将多个请求合并为单个请求。

Hystrix请求合并的基本原理

在Hystrix中,请求合并是通过以下两个关键组件实现的:

HystrixCommandCollapser:此类用于收集多个请求并将它们合并为单个请求。HystrixCollapserProperties:此类用于配置合并请求的行为。

当我们向服务发出请求时,HystrixCommandCollapser将该请求收集到请求缓冲区中。如果在一定时间内(通过HystrixCollapserProperties设置)有多个请求被收集,则它们将被合并为一个请求。该请求将使用HystrixCommand来发出,然后将响应拆分为单个响应并返回给原始请求。这样,我们就可以减少网络通信和线程使用,并提高系统性能。

Hystrix请求合并的使用示例

在本节中,我们将通过一个示例来演示如何使用Hystrix请求合并。在这个示例中,我们将模拟向外部服务发送多个请求,并使用Hystrix请求合并将它们合并为单个请求。

步骤1:添加依赖

首先,我们需要添加Hystrix依赖。在我们的示例中,我们将使用Spring Boot作为我们的应用程序框架。因此,我们将添加以下依赖:

    org.springframework.cloud    spring-cloud-starter-netflix-hystrix

步骤2:创建外部服务

接下来,我们将创建一个模拟的外部服务,该服务将模拟耗时操作。为此,我们将创建一个名为“ExternalService”的类,并在其中添加一个“getData”方法:

@Componentpublic class ExternalService {    private final Logger logger = LoggerFactory.getLogger(ExternalService.class);    public String getData(String key) throws InterruptedException {        logger.info("getData: " + key);        Thread.sleep(1000);        return "Result for " + key;    }}

如上所述,我们的ExternalService类包含一个名为“getData”的方法,该方法需要一个字符串参数。该方法模拟了一个耗时操作,它会在睡眠1秒后返回一个字符串结果。

步骤3:创建Hystrix请求合并器

现在我们可以创建Hystrix请求合并器。在我们的示例中,我们将创建一个名为“GetDataCollapser”的类,并让它继承自HystrixCommandCollapser:

public class GetDataCollapser extends HystrixCommand> {    private final ExternalService externalService;    private final String key;    public GetDataCollapser(ExternalService externalService, String key) {        super(Setter.withCollapserKey(HystrixCollapserKey.Factory.asKey("GetDataCollapser"))                .andCollapserPropertiesDefaults(HystrixCollapserProperties.Setter()                        .withTimerDelayInMilliseconds(200)));        this.externalService = externalService;        this.key = key;    }    @Override    public Map run() throws Exception {        Map resultMap = new HashMap<>();        String result = externalService.getData(key);        resultMap.put(key, result);        return resultMap;    }    @Override    public String getRequestArgument() {        return key;    }}

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

构造函数:该函数初始化HystrixCommandCollapser并将其与Hystrix线程池相关联。在此示例中,我们将HystrixCommandCollapser的键设置为“GetDataCollapser”,并将合并属性设置为延迟200毫秒。run()方法:该方法用于实际执行请求合并操作。在此示例中,我们调用ExternalService的“getData”方法,将其返回结果添加到一个HashMap中,并将其返回。getRequestArgument()方法:该方法返回用于标识请求的参数。在此示例中,我们将其设置为键值。

标签:

精彩放送

【多措并举确保粮食安全】亩产588.06公斤!我省旱地小麦单产再创新高

家里拆迁可以申请经适房吗? 拆迁户能申请经济适用房吗_天天讯息

颜值高还省油!新款捷豹 SUV 上市 同级唯一可选插混? 全球快资讯

连连看小游戏免费_连连看2 6|当前速读

奇瑞汽车六次上榜,“民族品牌”的排面从何而来?

国内多地县域充电桩安装量翻番 呈现哪些新趋势?

【环球报资讯】大学的数学专业有哪些科目考研究生要考

【天天报资讯】amd cpu怎么安装_cpu怎么安装

全球百事通!led灯是什么材料制成的

关注:山西移动网上营业厅_山西电信网上营业厅官网

招商银行临时额度到期(临时额度到期了是不是要全部归还)

全球微速讯:2023年深圳有多少个区_深圳有多少个区

热资讯!launcher_launch

2023年中国龙舟公开赛(湖北·荆州站)开赛 今日报

icloud下载照片是拍摄时间吗_icloud下载照片|天天报道

三角形底面积计算公式_三角形面积计算公式大全 全球讯息

当前看点!法线贴图原理_法线贴图

三七撞上二十一下载地址_三七撞上二十一下载_焦点精选

高盛:市场对美国通胀下降的速度预期太乐观了_每日快报

动态焦点:Redmi K60E送不送贴膜吗

焦点观察:0-3波兰队!中国女排无缘七连胜,分析有3大输球原因

5c 5s屏幕通用吗(5c 5s)

第一季度电力概念股每股收益排行榜一览

天天新资讯:国家防总对浙江等省份启动防汛四级应急响应

“家门口的便民集市”真暖心

杨颖,杨紫,王源,乐华,虞书欣

神农乡村生态环保(山西)有限公司在夏河开展投资考察活动 环球今日讯

即时焦点:文化石家庄——神秘中山国(上)

河南发布地质灾害黄色预警!这些地方有大到暴雨、局部大暴雨|天天热推荐

儿子被喂食大量安眠药,母亲和情夫当晚做肮脏之举,父亲死不瞑目

焦点快报!乡村之美丨浙南小渔村实现年游客量超八十万!秘诀是什么?

发射天宫2号的目的是什么意思_发射天宫2号的目的是什么 环球今日讯

环球新消息丨忻城税务:多措并举推动纳税缴费服务再升级

6:17:监管层释放重磅信号,A股牛蹄能否归来?

世界热推荐:山东艺术学院举行2023届毕业生毕业典礼暨学位授予仪式

原神苍漠囿土挑战方碑完成攻略

户枢不蠹流水不腐意思_户枢不蠹

水利部和中国气象局联合发布山洪灾害气象黄色预警

热消息:哈洽访谈|封昌红:为哈洽会插上创意设计的翅膀

洛雪音乐助手使用方法介绍

弗洛伊德死亡3年后,美国发布重磅报告揭种族歧视问题_天天看热讯

全球看热讯:龙韵股份(603729)6月1日股东户数0.91万户,较上期增加12.16%

2023年中国房企品牌排行TOP100

当前报道:原神:旅行者新皮肤又来了,新专武曝光?宵宫、甘雨皮肤超好看!

湖南开展专项整治行动保障农民工工资支付

牛皮沙发的种类_牛皮沙发的选购技巧是什么 每日看点

片碱的化学式怎么写(片碱的化学名称)|快资讯

环球微动态丨世界防治荒漠化与干旱日 | 防沙治沙的“中国智慧”

划龙舟看龙舟,五类安全提示莫疏忽!-焦点速读

世界球精选!三溪村夜赛龙舟盛大启幕!红花郎携手千年古邑共话经典与传承

qq.com_fcm qq com_世界新消息

当天成团/当天勘察/当月开工,昊铂发布超充到家“当日达”

2022年全国社会物流总额实现347.6万亿元!《中国商贸物流发展报告(2022年)》发布|今日关注

全球热门:空中俯瞰山水相融美如画 感受祖国大地夏日之美

沭阳县塘沟镇碾盘村:开展“阅汇四季”之阅读一“夏”主题活动

环球简讯:专家谈东西方文明互鉴:促进中外年轻人走进彼此生活

世界观天下!美国计划向乌克兰提供F-16战机 俄称已向美方发出外交照会

普拉提45分钟全套教程(普拉提)

智慧骨科机器人落户杭州医院 为患者提供更加安全、精准的医疗服务 环球看点

全球资讯:则Pixel手机应在重新启动时显示新的黑色启动动画

世界观察:卢大使卸任,临别赠言让欧洲如坐针毡!

欧吉桑和欧巴桑_欧吉桑

酒协公布!2023白酒圈“大洗牌”,五粮液王者归来,茅台地位不保 当前资讯

M5改装跑车驾驶好玩吗 M5改装跑车驾驶玩法简介_世界快播

哈尔滨站到太平机场大巴时刻表(哈尔滨火车站到机场大巴时刻表)

即时看!邮轮复航在即,准备好了吗?山东港口联合各方开展邮轮作业模拟通关演练

江西通报:是“老鼠类啮齿动物头部”

二战老照片完美上色:英勇的意大利游击队员 美军士兵鏖战硫磺岛

护航中考 浐灞公安推出多项暖心服务举措

李玉斌(关于李玉斌的简介) 全球聚看点

个人签名怎么写才霸气女_个人签名怎么写|环球热文

天天即时:拼多多百亿补贴618狂欢来袭 每人最高可领290元优惠券

美股异动|哈门那跌2% 2023财年每股收益指引低于预期 环球热点

天天日报丨世界主要国家海军一个航母打击群 通常由几艘各类舰艇编成 _360

重点聚焦!微信有人工客服吗在哪里(微信有人工客服吗)

市民体验大运会交通保障 设置大运会专用道 增加K6K7车次_天天热消息

空调什么牌子的好还便宜_空调什么牌子的好|热点评

属羊的是199几年出生的_属羊的是哪一年出生的简介介绍

世界观天下!非典型形态的危害食品安全犯罪

焦点速读:赛博仙侠外壳+传统文化底蕴,《梦幻新诛仙》新门派“泰裤辣”

金昌市首个邮银“乡村振兴金融工作室”挂牌成立-今日讯

关注:缺陷责任期与质量保修期的区别和判定_缺陷责任期与质量保修期的区别

河西区:发挥金融资源优势 助推实体经济发展

温暖的弦结局_温暖的弦大结局简介和详情介绍

电子数据取证可破解不法分子AI换脸术——对话中国科学院软件研究所研究员、博士生导师丁丽萍

天天讯息:6月20日,第十三届中俄文化大集在黑河开幕!大集活动剧透

观察:新华全媒+|探访高考评卷现场:各地严把评卷质量关

人有三把火什么意思?火灭了会死?-每日讯息

全球热头条丨记者观察 | 人民币汇率的韧性与弹性

全球看热讯:华润系入股金种子酒一年后:扭亏为重任、继续引进人才

马戴灞上秋居_灞上是什么意思 每日快播

英国央行6月料升息至4.75%,因通胀意外顽固-全球信息

热点!京津城际扩容 天津各站去往北京方向日均总运能增加超1.6万人次

盐城市优化金融服务激活实体动能

福建罗源:迎峰度夏 保障电煤供应|世界讯息

特斯拉FSD全面入华,谁松了一口气?

微资讯!南岭民爆:子公司中标47亿元工程项目

海口综保区金盘园区中央大道改造完工试通车

我在尼泊尔的街头用长焦镜头抓拍的照片 全球看点

采洽热烈人气旺