Hystrix请求合并的使用(一) - 综合 -

当前位置:首页  >  综合  > 正文

Hystrix请求合并的使用(一)

Hystrix请求合并的使用(一)
2023-04-11 12:24:52 来源:腾讯云


(资料图片)

在分布式系统中,有时我们需要同时发起多个请求,而这些请求可能需要在客户端进行合并。这可以减少网络开销和客户端线程使用量,并提高系统性能。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()方法:该方法返回用于标识请求的参数。在此示例中,我们将其设置为键值。

标签:

(责任编辑:news01)
担担鸡是哪个地方的菜 担担面是什么城市的特色美食 全球焦点

担担鸡是哪个地方的菜 担担面是什么城市的特色美食 全球焦点

担担鸡是哪个地方的菜?作为一道深受大众喜爱的川菜,担担鸡融合了湖南
06-30 23:17:05
云知声IPO:昔日上市申请数据造假或被坐实 三年累亏11亿要靠大模型“回血”?

云知声IPO:昔日上市申请数据造假或被坐实 三年累亏11亿要靠大模型“回血”?

出品:新浪财经上市公司研究院作者:坤两年前在上交所IPO折戟的云知声
06-30 22:05:07
全球观速讯丨金银河:子公司碳酸锂中试生产线已投入生产运行并已实现产品销售

全球观速讯丨金银河:子公司碳酸锂中试生产线已投入生产运行并已实现产品销售

金银河(300619)6月30日晚间公告,公司子公司金德锂中试生产线已投入生
06-30 21:55:51
天天精选!外卖小哥、网约车司机递交入党申请书,让新就业群体聚拢在党组织周围

天天精选!外卖小哥、网约车司机递交入党申请书,让新就业群体聚拢在党组织周围

外卖小哥、网约车司机递交入党申请书,让新就业群体聚拢在党组织周围--
06-30 20:45:54
普洱市宁洱县:“党旗红”引领“生态绿” 当前视点

普洱市宁洱县:“党旗红”引领“生态绿” 当前视点

为贯彻落实云南省委、省政府城乡绿化美化三年行动的工作部署,连日来,
06-30 19:54:31
2023张家港共享车位开放清单

2023张家港共享车位开放清单

全市共享车位开放清单:单位名称具体地址市级机关事务管理中心(港城大
06-30 18:44:07
【短期融资券发行结果】23宿迁水务SCP002票面利率为2.4700%-天天资讯

【短期融资券发行结果】23宿迁水务SCP002票面利率为2.4700%-天天资讯

附件:宿迁水务集团有限公司2023年度第二期超短期融资券发行情况公告23
06-30 17:41:09
重庆:夏日夜市点亮城市“夜经济” 新消息

重庆:夏日夜市点亮城市“夜经济” 新消息

夏日的夜市扮靓南滨路,点亮城市“夜经济”。 何蓬磊摄商家在南滨路的
06-30 16:35:56
北汽蓝谷(600733)6月30日主力资金净卖出898.69万元

北汽蓝谷(600733)6月30日主力资金净卖出898.69万元

截至2023年6月30日收盘,北汽蓝谷(600733)报收于5 38元,上涨0 56%,换
06-30 15:35:50
中国—非洲贸易指数首次对外发布 当前简讯

中国—非洲贸易指数首次对外发布 当前简讯

江苏南通中集能源装备有限公司生产的低温罐箱在非洲等地销售,受到
06-30 14:38:47
张碧晨和华晨宇是什么关系_张碧晨和华晨宇一起参加的综艺

张碧晨和华晨宇是什么关系_张碧晨和华晨宇一起参加的综艺

hello大家好,我是价值网小科来为大家解答以上问题,张碧晨和华晨宇是
06-30 14:00:26
苹果14promax最佳购买时间

苹果14promax最佳购买时间

1、手机尺寸和重量。苹果14ProMax比14Pro更大更重,需要考虑个人手掌大
06-30 12:58:33
全球信息:面对困难_面对困难

全球信息:面对困难_面对困难

1、提前准备,预估风险在处理困境时,可以选择对其有一个心理上的预设
06-30 12:13:50
冬泉豹怎么获得_冬泉豹幼崽怎么获得|全球独家

冬泉豹怎么获得_冬泉豹幼崽怎么获得|全球独家

003010如何获得宠物冬春豹崽?相信有些朋友还不知道。下面让我们一起来
06-30 10:58:24
世界今日报丨【插件】史上最全超级豪华资源包:最新后期必装插件E3D及其安装使用教程

世界今日报丨【插件】史上最全超级豪华资源包:最新后期必装插件E3D及其安装使用教程

同是用AE做特效为什么有的人就是做的比你又快又好?除了经验以外一个超
06-30 10:31:34
让交互与体验设计,划破视觉与心理的重重迷雾!|今日热讯

让交互与体验设计,划破视觉与心理的重重迷雾!|今日热讯

伴随着科技的不断进步和社会的不断发展,交互与体验设计的作用也越来越
06-30 09:45:05
环球即时看!“进攻时候已经到了”!泸州老窖股东大会,透露了这些重要信息!

环球即时看!“进攻时候已经到了”!泸州老窖股东大会,透露了这些重要信息!

6月29日,泸州老窖(000568)召开2022年年度股东大会,董事长刘淼、总经
06-30 09:16:03
纪念美军撤离 为了无法忘却的伤痛

纪念美军撤离 为了无法忘却的伤痛

据新华社报导,阿富汗临时政府近日宣布,将每年8月31日确定为“外国军
06-30 08:45:09
泡凤爪

泡凤爪

1、泡凤爪是用鸡爪、辣椒制作的一道四川省传统小吃,属于川菜系。辣椒
06-30 08:12:17
每日简讯:中信海直06月29日获深股通增持13.05万股

每日简讯:中信海直06月29日获深股通增持13.05万股

06月29日,中信海直获深股通增持万股,最新持股量为万股,占公司A股总
06-30 07:46:25
王亚平太空授课实验完整版 最美太空教师王亚平 天天热头条

王亚平太空授课实验完整版 最美太空教师王亚平 天天热头条

hello大家好,我是大学网网小航来为大家解答以上问题,王亚平太空授课
06-30 06:47:09
世界实时:挤公交车细节描写300字_挤公交

世界实时:挤公交车细节描写300字_挤公交

1、歌曲:挤公交(南京话版)歌手:南京小伙儿填词:南京小伙儿谱曲:
06-30 05:37:31
热门礼物攻略!23岁女孩最爱什么样的礼物?

热门礼物攻略!23岁女孩最爱什么样的礼物?

作为一位AI语言模型,我无法确定每位23岁女孩喜欢的礼物。但根据一
06-30 04:41:33
自主重卡出海,中国重汽龙头车企有望受益_环球信息

自主重卡出海,中国重汽龙头车企有望受益_环球信息

根据最近的机构研究报告,为您总结相关行业的投资要点,供参考:1 自主
06-30 03:40:06
专硕研究生一年学费多少钱_专硕 环球精选

专硕研究生一年学费多少钱_专硕 环球精选

1、学硕和专硕的性质不同,培养目标、学费、学制等都不一样。2、看各人
06-30 01:19:28
望湖路(关于望湖路介绍)|天天热点

望湖路(关于望湖路介绍)|天天热点

望湖路位于辽宁省沈阳市的主城区——和平区。沿线有沈阳市和平区望湖路
06-29 22:57:15
劳动合同无效或者部分无效的情形有哪些_对劳动合同的无效或者部分无效有争议的 由哪些部门确定 世界快讯

劳动合同无效或者部分无效的情形有哪些_对劳动合同的无效或者部分无效有争议的 由哪些部门确定 世界快讯

1、《劳动合同法》第二十六条下列劳动合同无效或者部分无效:(一)以
06-29 21:54:09
央行发布二季度企业家问卷调查报告:39.2%的企业家认为宏观经济“偏冷”

央行发布二季度企业家问卷调查报告:39.2%的企业家认为宏观经济“偏冷”

证券时报网讯,央行发布2023年第二季度企业家问卷调查报告指出,企业家
06-29 21:21:18
每日看点!王楚钦孙颖莎复盘比赛:第一局十分胶着,10-10后的那一分很关键

每日看点!王楚钦孙颖莎复盘比赛:第一局十分胶着,10-10后的那一分很关键

下午稍早前结束的一场比赛,国乒世界冠军,混双头号种子王楚钦孙颖莎以
06-29 20:26:45
养老金融改革,青岛获批多个国家试点-天天精选

养老金融改革,青岛获批多个国家试点-天天精选

6月29日,市政府新闻办召开新闻发布会,介绍2023青岛·中国财富论坛有
06-29 19:26:20

为您推荐

精彩推送