首页 >> 中医丰胸

Fastly 世界性规模边缘云计算实践

发布时间:2025年08月12日 12:19

o Fastly will use its cache TTL return(deliver); } else{ # no cache headers, so use cache policies for endpoints if(req.url ~ "And/v1/gifs/trending") { # set 10 minute ttl for trending responses setberesp.ttl = 600s; return(deliver); } }

通过这样的特设,我们可以让线程概要通过快照 TTL 战略自动出现异常,从而满足我们的需要求,但是如果我们不渴望赶紧线程自然已确定,也并能显式地让线程出现异常。须要通过线程键盘(URL)就可以让线程出现异常。对于舆论来说,这很有效,但是对 API 的声势浩大有点复杂。

例如,我们的 API 抓取相交可以为完全相同的查找调回不尽相同的 GIF,但是如果我们渴望使其出现异常,则无法告诉每个不太可能转化成 GIF 的 URL:

# same GIF can appear in the response of all of these API calls _key=originallyKEY1originallyPriceq=haha _key=originallyKEY1originallyPriceq=hehe _key=originallyKEY2originallyPriceq=lol _key=originallyKEY3originallyPriceq=laugh # same GIF (gif_id_abc) can appear in the response of all of these API calls https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY1originallyPriceq=haha AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY1originallyPriceq=hehe AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY2originallyPriceq=lol AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY3originallyPriceq=laugh AssignSurrogate Key: gif_id_abc

还可以为同一概要附加多个改由键盘:

# same GIF (gif_id_abc) can appear in the response of all of these API calls https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY1originallyPriceq=haha AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY1originallyPriceq=hehe AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY2originallyPriceq=lol AssignSurrogate Key: gif_id_abc https: //api.giphy.com/v1/gifs/search?api_key=originallyKEY3originallyPriceq=laugh AssignSurrogate Key: gif_id_abc

改由键盘是一个强大的属性,可以让我们选择合适的线程,非常为精确而非常简单地使其出现异常。通过这种特设,我们可以在下列情况使线程出现异常:

使所有包含特定 GIF 的线程 API 声势浩大出现异常; 使针对特定 API 键盘的所有线程 API 声势浩大强制执行; 使查找某些单词的所有线程 API 声势浩大强制执行。

在底部运营字符

VCL 为我们在底部碧游戏平台的装配总体获取了大量功能。我们早先展示出了装配如何为底部和 Origin Shield 端口特设各种线程 TTL 战略,但是我们还可以运用作 VCL 特设允诺电子邮件。

我们可以用字符来草稿广泛传播的允诺 URL。如果我们并能修改我们的 API 相交,那么这样来作就会非常便利,而不用苦恼我们的消费者来非常原先他们的调用。

# in vcl_recv if(req.url ~ “And/some-old-endpoint”) { # rewrite to the new endpoint setreq.url = regsub(req.url, “/some-old-endpoint”, “/ new- and-improved-endpoint”); }

还可以选择一定%-的广泛传播允诺来测试实验属性。利用 Fastly 的不一定一定坎,我们可以为某些允诺中就会附加一个类似的脚,以解决问题值得注意IP上的原先行为。

# in vcl_recv setreq.http.new_feature = 0 if(randombool(1,10000)) { # .01% of the traffic gets to see the new feature setreq.http.new_feature = 1; }

它结合了 Fastly 的底部注释,使得我们可以用至多的字符建立完全相同的行为。

# API keys that will have a percentage of their request use the new feature table new_feature_access { “originallyAPI_KEY1_ _”: “ 1”, “originallyAPI_KEY2_ _”: “ 5”, “originallyAPI_KEY3_ _”: “ 1000”, } subvcl_recv{ set req.http.new_feature = 0 # check if request has an api key that is setup to have a percentage of its requests use the new feature if(randombool(std.atoi(table.lookup(new_feature_access, subfield(req.url.qs, "api_key", "Price"), "0")) , 10000)) { set req.http.new_feature = 1; } return(lookup); }

这只是触及了 VCL 解决问题的功能的皮毛。如果你打算告诉还有什么可以来作的,可以在这里找到 Fastly 的文件!

2善于指引

我们运用作 Fastly 的很多属性来为世界性获取 GIF 动画概要。但是,当你可以运用作如此多的属性时,装配底部碧游戏平台不太可能就会愈发非常为复杂,因此,上头是一些我们推荐的善于指引可以帮助你收尾这个任务。

在底部和 Origin Shield 中就会分派 VCL

对于两层线程特设,有一个并能记住的关键盘问题是,将在底部和 Origin Shield 分派不尽相同的 VCL 字符。这不太可能导致 VCL 字符在允诺 / 声势浩大的精神状态电子邮件非常改时出现意均的结果。

举例来说,我们早先的 VCL 字符将根据由上游线程遏制脚或 VCL 字符本身自行要求的线程 TTL,为 Origin Shield 和底部端口特设线程 TTL:

# in vcl_fetch if(beresp.http.Surrogate-Control ~ "max-age"|| beresp.http.Cache-Control ~ "(s-maxage|max-age)" ) { # upstream set some cache control headers, so Fastly will use its cache TTL return(deliver); } else{ # no cache headers, so use cache policies for endpoints if(req.url ~ "And/v1/gifs/trending") { # set 10 minute ttl for trending responses setberesp.ttl = 600s; return(deliver); } }

假设对于 Trending Endpoint,我们也特设了声势浩大的 Cache-Control 脚,这样我们就可以指示调用方将概要线程到另一段的一段时间。这样来作须要按都有步骤:

# invcl_fetch if(beresp.http.Surrogate-Control ~ "max-age"|| beresp.http.Cache-Control ~ "(s-maxage|max-age)" ) { # upstream setsome cache control headers, so Fastly will use its cache TTL return(deliver); } else{ # no cache headers, so use cache policies forendpoints if(req.url ~ "And/v1/gifs/trending") { # set10minute ttl fortrending responses setberesp.ttl = 600s; # set30second ttl forcallers setberesp.http.cache-control = "max-age=30"; return(deliver); } }

Origin Shield 就会分派这段 VCL 字符,向声势浩大的脚附加 Cache-Control 脚,并将其调回到底部。但是,在底部出口处,它将看见声势浩大中就会特设了 Cache-Control,并就会分派 if 语句。这将导致底部端口运用作 30 秒的线程 TTL,而不是期望的 10 分钟!

幸运的是,Fastly 获取了一种区分底部和 Origin Shield 的方法有,它在允诺中就会特设了脚(Fastly-FF):

# invcl_fetch if(req.url ~ "And/v1/gifs/trending") { # set10minute ttl fortrending responses setberesp.ttl = 600s; return(deliver); } # invcl_deliver if(!req.http.Fastly-FF) { # set30second ttl forcallers setresp.http.cache-control = "max-age=30"; }

通过这个附加,Cache-Control 脚将非常为少在底部端口上特设,我们的线程战略旋即按期望运营!

试验性和测试

我们刚才提到的陷阱不太可能较难发现和试验性。VCL 字符只是运营在IP上,并向你显示声势浩大和声势浩大脚电子邮件。须要将试验性电子邮件附加到示例脚电子邮件中就会,并在声势浩大中就会查看它们,但是这不久就就会愈发不便利了。

所幸的是,Fastly Fiddle 工具在分派 VCL 字符时能给予非常好的电子邮件。在这个工具中就会,我们可以模拟各种 VCL 字符大多,并洞察 Fastly 的底部以及 Origin Shield IP将如何管控 VCL 字符的电子邮件。

都有是上述举例来说的 fiddle,显示双重分派 VCL 将影响线程 TTL。

我们在左边的必要大多特设了 VCL,然后分派它,查看 Fastly 将如何管控右边的允诺:

上绘出展示出了在允诺通过 edge 和 Origin Shield 端口时,关于它的生命周期的许多有用电子邮件。仅仅自然环境中就会,VCL 字符不太可能就会非常为复杂,而这个工具在这种情况下非常为优秀。

笔记简介:

Ethan Lu,API 团队系统设计他组织。

标题链接:

离职 Oracle 总裁兼土木工程欲吹出:MySQL 是“超烂的在线”,建议考虑 PostgreSQL 量度机框架史上的一次伟大失败,多数人都不告诉 滴滴顺利收尾美股避险;阿里股票跌回2017年;Linus冷笑话桌面版Linux:乱改核心,程序来兼容性太糟糕 | Q资讯

这个重要Ubuntu建设项目全靠一位严肃的“怪老脚”维护!他和比尔盖茨一样拚了量度机世界性

点个在看少个 bug👇

泉州治疗白癜风医院费用
通化治疗白癜风医院费用
通辽哪里治白癜风最好
咳嗽有痰黄色的,吃什么药比较?
皮肤科疾病症状
新冠药
胃火旺口臭
口腔综合科

上一篇: 重庆市科协党组书记王合清:大力培训科学精神

下一篇: 人民时评:解除超龄农民工的急于

友情链接