指向同一个域的多个 A 记录似乎几乎专门用于将 DNS 轮询作为一种廉价的负载平衡技术来实现。
针对 DNS RR 的常见警告是它不利于高可用性。当 1 个 IP 出现故障时,客户端将继续使用它几分钟。
通常建议使用负载平衡器作为更好的选择。
这两种说法都不完全正确:
当流量为 HTTP 时,大多数 HTML 浏览器能够自动尝试下一条 A 记录(如果前一条记录出现故障),而无需进行新的 DNS 查找。阅读此章节3.1和这里。
当涉及多个数据中心时,DNS RR 是在它们之间分配流量的唯一选择。
那么,对于多个数据中心和 HTTP 流量,使用 DNS RR 是确保在一个数据中心出现故障时立即进行故障转移的唯一方法吗?
谢谢,
华伦天奴
编辑:
编辑2:
我们刚刚迁移到亚马逊 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。这真的不是一种特别有效的方法,因为在我的情况下,我们正在谈论几个对象。
谢谢!
这是一个很长的问题,所以请耐心等待。
我想强调我从 AWS 实例登录的 Akamai 服务器。所以,我开始运行 ab 基准测试。然而,他们下载大约 3 MB 的视频文件似乎快得离谱。我自然想看看发生了什么。这就是我为获取文件所做的工作
curl -v -o /dev/null
以上操作在约 5 秒内完成。
接下来,我再次运行相同的命令。这一次,它在大约 200 毫秒内完成!当然,我的直觉是文件被缓存在某个地方。
我的问题:
谢谢你,阿克谢
什么时候值得向您的网站添加 CDN(内容交付网络)?将它用于作为 Web 应用程序的流量相对较低的网站是否有意义?客户遍及美国。
CDN 是否会为我的场景的最终用户提供显着的差异,还是仅在您真正达到可扩展性级别后才显示有效性?
编辑:有关服务器设置的信息,目前它是共享托管环境中的单个 ASP.NET 实例。进入 CDN 的将是一些图像文件、jquery 相关文件(我知道谷歌为核心提供了 CDN)、css 文件,可能还有一些中等大小的 PDF 文件。
我想这个问题可能是有资格的,CDN 如何在 DNS 级别工作,但我遇到的真正问题是我的公司在三大洲都有数据中心,我们必须拥有 europe.example.com us.example.com 和 asia.example .com
CDN 通常会根据您的 IP 地址将您发送到我想象的本地数据中心。这一定是 DNS 问题,您在美国的 DNS 服务器将您发送到美国数据中心进行相同的 example.com DNS 查找?
我错了吗?如果我错了,如果没有中央(非 DNS)服务器,我将如何有效地做到这一点?
我计划将我的静态文件移动到 Google 的 App Engine。我想知道这是否是一个好主意。
我读过谷歌是否有可能将您的文件缓存在多个位置,在我看来这是一件好事。
使用 GAE 插件在 Eclipse 中设置也应该很容易。
但我仍然对这方面的表现持怀疑态度。App Engine 的设置是否针对提供静态内容进行了优化。现在我有 Nginx 服务器我的静态内容,App Engine 是否会以相同的方式执行。
使用这种方法还有其他的好处或坏处吗?
我负责为流媒体视频设置 CDN 帐户,但实际上并没有运行将托管内容的站点。如何测试已发布的 RTMP URL 是否有效?我是否需要使用 Flash 视频播放器创建一个测试页面,或者是否有一个可以使用可用于测试的 RTMP 流的简单工具?URL 格式如下:
rtmp://example.fcod.llnwd.net/a1111/e11/test/example/file.flv
我找到了 CDN 工作原理的解释。但是有一件事我真的不明白。假设在我的位置我设置多个DNS服务器和他们所使用的域名服务器的域dns1.example.com,dns2.example.com和dns3.example.com。该 DNS 服务器能够根据访问者的位置(ping、地理数据库、浏览器语言或其他任何内容)提供服务器 IP。现在我www.example.org在注册表中为我的域更新此名称服务器设置。
现在,第www.example.org一个使用过期 TTL 的请求尝试解析域。它问:
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 …
我在一家财富 500 强公司工作,该公司努力准确衡量高可用性应用程序的性能和可用性(即,应用程序在 5 秒页面到页面导航时性能提升 99.5%)。我们将计划内和计划外停机时间都考虑在内,以确定此可用性数字。然而,我们最近在组合中添加了一个 CDN,这使我们的指标有点复杂。CDN 现在处理了我们大约 75% 的流量,同时将其余流量发送到我们自己的服务器。
我们试图衡量我们所谓的“真实用户体验”(即,我们的测试脚本模拟典型用户点击应用程序。)这些监控脚本位于我们的网络之外,这意味着我们正在访问 CDN 大约 75%时间。
管理层决定我们采用最坏的情况来衡量可用性。因此,如果我们的源服务器出现问题,但 CDN 提供的内容还不错,我们仍然会受到可用性的影响。反过来也是一样。我的想法是,只要“用户体验”成功,我们就不要不必要地惩罚自己。毕竟,CDN 可以提高性能和可用性!
我只是想知道是否有人知道其他财富 500 强公司如何计算他们的可用性数字?例如,我查看 apple.com 的一家店面,该店面使用的 CDN 似乎从未关闭(除非即将发布重大产品)。如果有一些确凿的事实数据会很棒,因为我不知道不要相信我们需要在这些指标上不必要地伤害自己。我们正在根据这些数字做出商业决策。
然而,我可以说,鉴于这些指标对管理层可见,问题得到解决和解决的速度非常快(阅读:我们很快就完成了繁文缛节。)不幸的是,作为一名开发人员,我不希望管理层思考应用程序启动或关闭是因为某些外部因素(即 CDN)正在影响数字。
想法?
(我错误地在StackOverflow上发布了这个问题,交叉发布提前道歉)
我是一名计划使用 Amazon Cloudfront S3 的网站所有者。我一直在阅读有关 CDN 可以做什么的所有内容,但我仍然有一个悬而未决的问题。
即使我的主服务器关闭,CDN 是否仍然有效。这是我对它感兴趣的主要原因。因为,我的服务器在马里经常因为停电而经常中断。