- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在决定是管理自己的Varnish服务器还是使用FaSTLy之类的托管服务。此处最重要的决策因素之一是有效的基于标记的缓存无效化,因为我计划将Varnish置于API的前面,并且我们将需要经常发出使多个相关页面无效的清除请求。
快速提供Surrogate Keys,而Varnish似乎提供了带有许多名称的separate module,包括Hashtwo,Hashninja和XKey。这些功能似乎是相同的。它们实际上是否相同,或者这两个功能之间在博客上关于它们的不清楚的关键技术或效率差异?
最佳答案
代理键是FaSTLy对该功能的实现。我编写了当前的实现,但是没有使用HashTwo/Hashninja/xkey,所以我不是实现之间区别的权威。 Xkey在https://github.com/varnish/libvmod-xkey上作为vmod公开可用。
代理 key 是FaSTLy服务的标准部分,但作为CDN,我们将其作为托管平台的一部分提供。它不是开源的,这主要是没有充分的理由的。对此进行了一些讨论,但这并不是一个重要的优先事项(部分是因为我们的Varnish是来自2.1.4的fork)。
单个 key 不允许超过1kb(因为为什么?),并且整个 key 列表不允许超过16kb。大约一年前,我们根据客户要求提高了这些值的限制(以前是1kb)。 key 的数量没有限制,只要它们适合该空间即可(尽管我意识到这确实有效地限制了 key 空间)。限制长度的基本原理是按键清除会导致一定数量的线性时间操作,而我们希望保持一定的时间。如果我们当前的限制有任何实际问题,我会感到惊讶。
我要指出的是,xkey的长度和键数也受到限制,因为键也是通过 header 指定的,并且 header 的长度实际上是由为连接服务的线程可用的工作空间限制的。如果您运行自己的Varnish,则此长度是可调的,这对您而言可能不是实际的限制,但确实存在。
我注意到扫描代码的另一个次要区别是xkey vmod支持多个xkey header ,而FaSTLy Surrogate Keys是从第一个匹配的 header 中获取的。在用于实现功能的数据结构方面存在一些差异(部分是由于我们运行 Multi-Tenancy Varnish的事实),但其他方面的功能看起来很相似。
最后,我们(此时)在全局范围内拥有数百个Varnish安装的集群。我们的基础架构的一部分必须与通过我们的网络可靠地分发清除并确保在全局范围内应用清除有关。如果运行Varnish节点集群,则可能必须做一些额外的工作才能使多个节点之间的缓存无效(尽管对于小型集群而言,这不太可能是一个重大问题)。
关于varnish - Varnish Hashtwo/Xkey和FaSTLy的 "Surrogate Keys"是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247295/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
我试图真正理解 unicode 标准并且正在浏览 xml spec它写着: Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [
我有以下方法在一个漂亮的网页上显示 IIS worker 请求,但是每次刷新页面时它都会增加目标机器上 dllhost(COM 代理)的内存消耗,直到没有更多可用内存。我是 C# 的初学者,所以我希望
我目前正在决定是管理自己的Varnish服务器还是使用FaSTLy之类的托管服务。此处最重要的决策因素之一是有效的基于标记的缓存无效化,因为我计划将Varnish置于API的前面,并且我们将需要经常发
据我了解,事实表中没有主键,放置代理键在某种程度上是浪费空间。因此,外键组合是事实表的主键。 但我可能会说,我无法做到这一点,因为唯一键可能会在事实表中重复,例如同一个人在同一天在同一家餐厅支付了两次
我正在使用“DllSurrogate”方法允许 64 位 C# exe 与 32 位 C# dll 对话。Hosting a .NET DLL as an Out-Of-Process COM Ser
我有一个 org.w3c.dom.Document 并想用这个函数序列化它,但我得到一个 SAXException。我该如何解决这个问题? public static String serialize
据我所知,每当我在 JPA/Hibernate 实体内的 Long 字段上使用 @Id 和 @GeneratedValue 时,我实际上是在使用代理键,我认为这是定义主键的一种非常好的方式,考虑到我在
我对 pandas 等包的了解相当浅薄,我一直在寻找将数据展平成行的解决方案。使用这样的 dict 和一个名为 entry_id 的代理键: data = [ { "id":
我正在尝试对现有数据库使用 EF6(首先通过代码)。底层数据库中没有 FK。实体使用身份 pk 定义,但也可以通过代理值 (RefId) 引用。 假设我有: public class Cart {
在 Rust 中有一条规则说“取消引用原始指针必须产生一个适当的、非代理的 Unicode 代码点”。 我不明白这里的“非代理人”是什么意思。我所知道的是 UTF-8 具有可变长度的代码点,因此 Ve
最近,由于这个 socket.io 错误,我的 Node.js 服务器经常崩溃。我怀疑客户端正在发送无效的 utf 字符串,这将在 utf8.js 文件中引发错误。有没有办法避免服务器崩溃?这非常令人
将 JavaScript 字符串拆分为“字符”可以轻松完成,但如果您关心 Unicode(并且您应该关心 Unicode),就会出现问题。 JavaScript native 将字符视为 16 位实体
我正在使用 Python 3.6.0b2。 我正在解析大量电子邮件。这封特定的电子邮件是一个问题,因为我无法打印电子邮件地址的显示名称。尝试打印电子邮件地址显示名称给出: UnicodeEncodeE
我想完成以下模型: 我的代码如下所示(删除了与问题无关的属性): public class Stock { [DatabaseGenerated(DatabaseGeneratedOption
我在尝试打印 unicode 的结果时遇到了问题,这是我尝试过的 data = u"\ud835\udc6a\ud835\udc89\ud835\udc90\ud835\udc84\ud835\udc
我正在尝试在 MySQL 中设计一个电子商务 Web 应用程序,但在为用户表选择正确的主键时遇到了问题。给出的示例只是用于说明的示例示例。 用户表有以下定义 CREATE TABLE IF NOT
这个问题在这里已经有了答案: How can I generate a random unicode character in Swift? (2 个答案) 关闭 7 年前。 有时在用 57292
这段代码: for root, dirs, files in os.walk('.'): print(root) 给我这个错误: UnicodeEncodeError: 'utf-8' cod
当我尝试使用时: df[df.columns.difference(['pos', 'neu', 'neg', 'new_description'])].to_csv('sentiment_data.
我是一名优秀的程序员,十分优秀!