标签: cdn

多个数据中心和 HTTP 流量:DNS Round Robin 是确保即时故障转移的唯一方法吗?

指向同一个域的多个 A 记录似乎几乎专门用于将 DNS 轮询作为一种廉价的负载平衡技术来实现。

针对 DNS RR 的常见警告是它不利于高可用性。当 1 个 IP 出现故障时,客户端将继续使用它几分钟。

通常建议使用负载平衡器作为更好的选择。

这两种说法都不完全正确:

  1. 当流量为 HTTP 时,大多数 HTML 浏览器能够自动尝试下一条 A 记录(如果前一条记录出现故障),而无需进行新的 DNS 查找。阅读此章节3.1这里

  2. 当涉及多个数据中心时,DNS RR 是在它们之间分配流量的唯一选择。

那么,对于多个数据中心和 HTTP 流量,使用 DNS RR 是确保在一个数据中心出现故障时立即进行故障转移的唯一方法吗?

谢谢,

华伦天奴

编辑:

  • 当然,每个数据中心都有一个带有热备份的本地负载均衡器。
  • 为即时故障转移牺牲会话亲缘关系是可以的。
  • AFAIK DNS 建议数据中心而不是另一个数据中心的唯一方法是仅回复与该数据中心关联的 IP(或多个 IP)。如果数据中心变得无法访问,那么所有这些 IP 也无法访问。这意味着,即使智能 HTML 浏览器能够立即尝试另一个 A 记录,所有尝试都将失败,直到本地缓存条目过期并完成新的 DNS 查找,获取新的工作 IP(我假设 DNS 自动建议给一个一个失败时的新数据中心)。因此,“智能 DNS”不能保证即时故障转移。
  • 相反,DNS 循环允许它。当一个数据中心出现故障时,智能 HTML 浏览器(大多数)会立即尝试将其他缓存的 A 记录跳转到另一个(工作)数据中心。因此,DNS 循环不能保证会话亲和性或最低的 RTT,但当客户端是“智能”HTML 浏览器时,它似乎是确保即时故障转移的唯一方法。

编辑2:

  • 有些人建议将 TCP Anycast 作为最终解决方案。在纸(第6章)中说明了选播器故障切换是关系到BGP收敛。出于这个原因,任播可以使用 15 分钟到 20 秒来完成。在为此优化拓扑的网络上,20 秒是可能的。可能只有 …

domain-name-system high-availability anycast cdn geodns

81
推荐指数
4
解决办法
3万
查看次数

来自具有 S3 源的 AWS CloudFront 的文件没有缓存控制标头

我们刚刚迁移到亚马逊 AWS。我们目前有一个运行良好的 EC2 实例。它在前端运行 Nginx,在后端运行 Apache。这也运行良好。所有站点都已正确启动,并包含从 EC2 提供的文件的 Cache-Control 标头。

问题在于我们放置在Amazon S3中的所有静态文件都是通过CloudFront CDN访问的。我们可以正常访问文件(并且 CORS 没有问题),但显然CloudFront 不提供带有 Cache-Control 标头的文件。我们想利用浏览器缓存。

在我看来,EC2 实例在这里不起作用,因为静态文件由 S3+CloudFront 直接提供,请求不会转到 EC2 中的 Web 服务器。

我完全迷失了。

问题:1)在这种情况下如何设置Cache-Control?2)是否可以设置Cache-Control?从 S3 还是 CloudFront?

注意:我在 Google 中找到了几个页面,您可以在其中为单个对象设置 S3 中的 Header。这真的不是一种特别有效的方法,因为在我的情况下,我们正在谈论几个对象。

谢谢!

cache amazon-s3 cdn amazon-cloudfront amazon-web-services

32
推荐指数
1
解决办法
3万
查看次数

CURL 是否缓存请求?

这是一个很长的问题,所以请耐心等待。

我想强调我从 AWS 实例登录的 Akamai 服务器。所以,我开始运行 ab 基准测试。然而,他们下载大约 3 MB 的视频文件似乎快得离谱。我自然想看看发生了什么。这就是我为获取文件所做的工作

curl -v -o /dev/null

以上操作在约 5 秒内完成。

接下来,我再次运行相同的命令。这一次,它在大约 200 毫秒内完成!当然,我的直觉是文件被缓存在某个地方。

我的问题:

  1. curl 是否缓存文件?如果是这样,有没有办法忽略它?
  2. 如果 curl 没有,ubuntu 是否在 curl 下抽象了一个缓存?如果是这样,有没有办法忽略它?
  3. 考虑到这些要求,您认为除了 ab 之外还有其他基准测试工具可以达到此目的吗?

谢谢你,阿克谢

cache cdn curl ab ubuntu-14.04

20
推荐指数
2
解决办法
4万
查看次数

CDN(内容交付网络)什么时候变得值得?

什么时候值得向您的网站添加 CDN(内容交付网络)?将它用于作为 Web 应用程序的流量相对较低的网站是否有意义?客户遍及美国。

CDN 是否会为我的场景的最终用户提供显着的差异,还是仅在您真正达到可扩展性级别后才显示有效性?

编辑:有关服务器设置的信息,目前它是共享托管环境中的单个 ASP.NET 实例。进入 CDN 的将是一些图像文件、jquery 相关文件(我知道谷歌为核心提供了 CDN)、css 文件,可能还有一些中等大小的 PDF 文件。

web-hosting cdn

17
推荐指数
1
解决办法
4472
查看次数

如何像 CDN 那样做区域 DNS?

我想这个问题可能是有资格的,CDN 如何在 DNS 级别工作,但我遇到的真正问题是我的公司在三大洲都有数据中心,我们必须拥有 europe.example.com us.example.com 和 asia.example .com

CDN 通常会根据您的 IP 地址将您发送到我想象的本地数据中心。这一定是 DNS 问题,您在美国的 DNS 服务器将您发送到美国数据中心进行相同的 example.com DNS 查找?

我错了吗?如果我错了,如果没有中央(非 DNS)服务器,我将如何有效地做到这一点?

domain-name-system cdn

17
推荐指数
3
解决办法
2万
查看次数

使用 Google 的 App Engine 作为静态文件的 CDN

我计划将我的静态文件移动到 Google 的 App Engine。我想知道这是否是一个好主意。

我读过谷歌是否有可能将您的文件缓存在多个位置,在我看来这是一件好事。

使用 GAE 插件在 Eclipse 中设置也应该很容易。

但我仍然对这方面的表现持怀疑态度。App Engine 的设置是否针对提供静态内容进行了优化。现在我有 Nginx 服务器我的静态内容,App Engine 是否会以相同的方式执行。

使用这种方法还有其他的好处或坏处吗?

google-app-engine static-content cdn google-cloud-platform

14
推荐指数
1
解决办法
5146
查看次数

如何验证 RTMP 流 URL 是否正常工作?

我负责为流媒体视频设置 CDN 帐户,但实际上并没有运行将托管内容的站点。如何测试已发布的 RTMP URL 是否有效?我是否需要使用 Flash 视频播放器创建一个测试页面,或者是否有一个可以使用可用于测试的 RTMP 流的简单工具?URL 格式如下:

rtmp://example.fcod.llnwd.net/a1111/e11/test/example/file.flv

cdn flash video-streaming rtmp

12
推荐指数
1
解决办法
7万
查看次数

CDN:我的 DNS 怎么可能根据访问者的位置提供不同的 IP?

我找到了 CDN 工作原理的解释。但是有一件事我真的不明白。假设在我的位置我设置多个DNS服务器和他们所使用的域名服务器的域dns1.example.comdns2.example.comdns3.example.com。该 DNS 服务器能够根据访问者的位置(ping、地理数据库、浏览器语言或其他任何内容)提供服务器 IP。现在我www.example.org在注册表中为我的域更新此名称服务器设置。

现在,第www.example.org一个使用过期 TTL 的请求尝试解析域。它问:

  1. 本地 .hosts/DNS,如果 TTL 过期:
  2. 互联网提供商的 DNS,如果 TTL 过期:
  3. 根 DNS,如果 TTL 过期:
  4. 我的本地人 dns1.example.com

但是,如果我理解正确,那么新 IP 将添加到所有这些名称服务器缓存中,直到 TTL 再次过期。那么如何根据访问者的位置将其他 IP 发送给访问者呢?

这个答案中, theandym 说请求是“转发”的,但我认为这不是 CDN 的工作方式,因为“转发”意味着延长传输方式,导致加载时间更长。或者 CDN 是否要求域的 TTL 为零?

Update1
通过这个问题,我找到了谷歌的文档,描述了他们如何优化 CDN 性能。它没有解释 CDN 一般是如何工作的,但有一些有趣的解释,如下所示:

此后,每当客户端尝试获取托管在 CDN 上的内容时,客户端都会被重定向到确定其前缀具有最小延迟的节点。但是,此重定向基于与 DNS 名称服务器的 IP 地址相对应的前缀,该服务器代表客户端解析内容的 URL,通常与客户端位于同一位置。

这意味着 Google 首先会检查所有 IP 前缀的延迟,并为所有可用前缀定义 DNS 解析表 (?)。如果访问者拥有 IP 198.51.100.231 …

domain-name-system http cdn nameserver

12
推荐指数
1
解决办法
6587
查看次数

寻找有关衡量使用 CDN 的高可用性应用程序的建议

我在一家财富 500 强公司工作,该公司努力准确衡量高可用性应用程序的性能和可用性(即,应用程序在 5 秒页面到页面导航时性能提升 99.5%)。我们将计划内和计划外停机时间都考虑在内,以确定此可用性数字。然而,我们最近在组合中添加了一个 CDN,这使我们的指标有点复杂。CDN 现在处理了我们大约 75% 的流量,同时将其余流量发送到我们自己的服务器。

我们试图衡量我们所谓的“真实用户体验”(即,我们的测试脚本模拟典型用户点击应用程序。)这些监控脚本位于我们的网络之外,这意味着我们正在访问 CDN 大约 75%时间。

管理层决定我们采用最坏的情况来衡量可用性。因此,如果我们的源服务器出现问题,但 CDN 提供的内容还不错,我们仍然会受到可用性的影响。反过来也是一样。我的想法是,只要“用户体验”成功,我们就不要不必要地惩罚自己。毕竟,CDN 可以提高性能和可用性!

我只是想知道是否有人知道其他财富 500 强公司如何计算他们的可用性数字?例如,我查看 apple.com 的一家店面,该店面使用的 CDN 似乎从未关闭(除非即将发布重大产品)。如果有一些确凿的事实数据会很棒,因为我不知道不要相信我们需要在这些指标上不必要地伤害自己。我们正在根据这些数字做出商业决策。

然而,我可以说,鉴于这些指标对管理层可见,问题得到解决和解决的速度非常快(阅读:我们很快就完成了繁文缛节。)不幸的是,作为一名开发人员,我不希望管理层思考应用程序启动或关闭是因为某些外部因素(即 CDN)正在影响数字。

想法?

(我错误地在StackOverflow上发布了这个问题,交叉发布提前道歉)

reporting high-availability metrics cdn

11
推荐指数
1
解决办法
1142
查看次数

即使我的服务器停机,CDN 是否仍然有效?

我是一名计划使用 Amazon Cloudfront S3 的网站所有者。我一直在阅读有关 CDN 可以做什么的所有内容,但我仍然有一个悬而未决的问题。

即使我的主服务器关闭,CDN 是否仍然有效。这是我对它感兴趣的主要原因。因为,我的服务器在马里经常因为停电而经常中断。

backup amazon-s3 cdn

10
推荐指数
4
解决办法
4212
查看次数