Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Varnish-缓存RESTXML响应_Xml_Api_Rest_Caching_Varnish - Fatal编程技术网

Varnish-缓存RESTXML响应

Varnish-缓存RESTXML响应,xml,api,rest,caching,varnish,Xml,Api,Rest,Caching,Varnish,我目前正在支持一个遗留的RESTAPI平台,该平台在技术上不受支持,但对业务运行仍然至关重要(耶!)。流量呈指数级增长,这意味着API背后的应用程序不断增加,并导致引擎中断,从而从Oracle数据库中获取价格(并将其存储在EHCache/Infinispan中) 我的想法是在定价引擎前面放置一个TTL非常低(60秒?)的Varnish缓存,这样,如果一个相同的XML请求进入,它将抛出相同的响应 但我对Varnish没有经验,我在网上找到的烹饪书就是为Varnish v3编写的,在v4上不起作用

我目前正在支持一个遗留的RESTAPI平台,该平台在技术上不受支持,但对业务运行仍然至关重要(耶!)。流量呈指数级增长,这意味着API背后的应用程序不断增加,并导致引擎中断,从而从Oracle数据库中获取价格(并将其存储在EHCache/Infinispan中)

我的想法是在定价引擎前面放置一个TTL非常低(60秒?)的Varnish缓存,这样,如果一个相同的XML请求进入,它将抛出相同的响应

但我对Varnish没有经验,我在网上找到的烹饪书就是为Varnish v3编写的,在v4上不起作用


关于这是否仍然可行,有什么想法吗?如果是这样的话,您能为我指出vcl模板的正确方向吗?

缓存将提供巨大的提升并减少系统负载。如果价格相对于请求变化很少,您可能会考虑任何数量的缓存策略。影响最大的可能是数据库,因此REST服务器中阻止DB搜索和XML构造的任何缓存都会给您带来所需的提升。你的RESTAPI是用什么语言编写的?嗨,威廉,谢谢你的回复!restapi是用Java编写的,它自己进行缓存(使用Infinispan的ehcache),但是当流量非常大时,Java就会过载。我们分析了通过API发送的数据,发现有时我们每分钟有几百个相同的事务,因此使用静态缓存(例如,Varnish或类似的东西)可以保护Java应用程序多一点,因为由于硬件要求,扩展成本很高。Varnish看起来很轻,可以坐在每个节点上的Apache前面。我看到了您是如何做到这一点的,这也解释了您为什么要考虑Varnish这样的解决方案。我是一个.NET(不是Java)的人,所以我不能具体说明Java的可伸缩性,但对我来说,每分钟数百个请求听起来不是很高。祝你的项目好运。谢谢威廉。我们已经尽可能地扩展了Java堆栈(我们现在的限制是硬件和Oracle后端),所以我们只是想在前面添加一些东西来缓存响应。也就是说,我们多次收到相同价值的相同帖子请求,价格每分钟变化不会超过一次:ProductPrice1234USD应始终生成ProductPrice1234USD45.67有没有其他清漆专家愿意为我指出正确的方向?