首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Varnish /Xkey和Fastly的“代理密钥”是否相同?

Varnish /Xkey和Fastly的“代理密钥”是否相同?
EN

Stack Overflow用户
提问于 2015-12-13 02:15:04
回答 2查看 1.6K关注 0票数 3

我目前正在决定是管理我自己的Varnish服务器,还是使用像Fastly这样的托管服务。这里最重要的决策因素之一是高效的基于标签的缓存失效,因为我计划将Varnish放在我们的API前面,并且我们需要经常发出清除请求,从而使许多相关页面失效。

Fastly提供代理密钥,Varnish似乎提供了一个名为分离模块的名称,其中包括Hashtwo、Hashninja和XKey。这些特征似乎是相同的。它们实际上是一样的吗?还是这两个特性之间是否存在一些关键的技术或效率差异,从博客文章中还不清楚呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-06 21:28:18

代理键是此功能的快速实现。我编写了当前的实现,但没有使用HashTwo/Hashninja/xkey,所以我不是实现之间差异的权威。Xkey在https://github.com/varnish/libvmod-xkey上作为vmod公开可用。

代理密钥是part服务的一个标准部分,但作为CDN,我们提供它作为我们托管平台的一部分。它并不是开源的,没有什么好的理由;有一些关于这样做的讨论,但是它不是一个很重要的优先事项(部分原因是我们的Varnish是2.1.4中的一个分支)。

单个密钥不允许超过1kb (因为为什么?)而整个密钥列表不允许超过16 key。我们在大约一年前应客户请求提高了对这些值的限制(以前是1kb )。只要键在这个空间内,键的数量就没有限制(虽然我意识到这会有效地绑定键空间)。限制长度的基本原理是,关键清除会导致一定数量的线性时间运算,而我们更喜欢保持有界。如果我们目前的限制有什么实际问题,我会感到惊讶的。

我要注意的是,xkey的长度和键数也是有限的,因为键也是通过头指定的,而头长度实际上是由为连接服务的线程的可用工作区所限制的。这个长度是可调的,如果您运行您自己的漆,这可能不是一个实际的限制,但它确实存在。

我在代码中注意到的另一个细微差别是,xkey vmod支持多个xkey头,而快速代理键则是从第一个匹配头中获取的。在用于实现该功能的数据结构方面存在一些差异(部分原因是我们运行了一个多租户清漆),但在其他方面功能似乎是相似的。

最后,我们(此时)在全球拥有数百个Varnish安装集群。我们的基础设施的一部分是通过我们的网络可靠地分发清除,并确保它们在全球范围内得到应用。如果您运行了一个Varnish节点集群,您可能需要做一些额外的工作来使跨多个节点的缓存失效(尽管对于一个小型集群来说,这不太可能是一个重大问题)。

票数 8
EN

Stack Overflow用户

发布于 2015-12-13 18:39:50

xkey和hashtwo (在一些营销材料中是hashninja)是相同的。

我认为快速提供的主要区别在于,xkey不对每个对象/URL的长度或键数增加任何限制。据我所知,这两种方法都很好。(全面披露:我在清华软件公司工作)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34247295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档