解密因特网级别的负载均衡常用手段
Posted 架构头条
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解密因特网级别的负载均衡常用手段相关的知识,希望对你有一定的参考价值。
在冗余的网络路径上分发流量,在不可用的基础设施周围进行路由来提高可用性(会导致不对称路由等现象),这些从本质上讲并不是负载均衡。
遗憾的是,由于 DNS 记录是有缓存的,这些缓存记录可能会在客户端或者 DNS 层次结构中的其他名称服务器中,在它们过期之前,大约有 50% 的请求仍然可能失败。DNS 记录的 TTL(time to live,生存时间)通常为几分钟或更长,因此这会对系统的可用性造成重大影响。
4 层负载均衡器将来自用户的连接均衡分布在两个 web 服务器上
4 层均衡器可以进行健康检查,并仅仅向那些通过检查的 web 服务器发送流量。与 DNS 均衡不同的是,如果一个 web 服务器崩溃,将流量重定向到另一个 web 服务器上的延迟很小,尽管现有连接将被重置。
4 层均衡器可以做加权平均,处理不同容量的后端,它为运维人员提供了强大的能力和灵活性,同时在计算能力方面相对便宜。
使用 anycast(任播)从多个站点提供服务
这个设置有几个问题。最糟糕的是,你无法控制流量的走向或者限制发送到某个特定站点的流量。通常,决定路由的网络协议和配置应该将用户路由到最近的站点,不过就网络延迟而言,你并没有明显的方法来实现这个目标。
为了维持稳定性,你需要控制每个站点的流量,你可以为每个站点分配不同的虚拟 IP,并使用 DNS 的简单循环或加权 循环 来均衡流量。
从多个站点提供服务:每个站点使用一个主虚拟 IP,二级站点备份,使用地理感知 DNS
现在产生了两个新的问题。
首先,使用 DNS 均衡意味着你有缓存记录,这不太适用于那些需要迅速重定向流量的场景。
第二,每当用户做一次新的 DNS 查询,虚拟 IP 会将用户连接到一个随机的站点,而不一定是离用户最近的那一个。如果你的服务站点分布广泛,根据用户和服务站点之间的网络延迟,各个用户感知到的系统响应性能会有较大波动。
让每个站点不断传播虚拟 IP,并为所有其他站点(以及任何有问题的站点的虚拟 IP)提供服务,你可以通过这种方式解决第一个问题。一些网络技巧(比如从备份中传播不那么特殊的路由信息)可以确保虚拟 IP 对应的主站只要是可用的,那么它便是首选。这是通过 BGP 完成的,因此在更新 BGP 后的一到两分钟内,我们应该会看到流量的移动。
随着时间的推移,你的客户开始对一些更加高级的特性提出要求。
在 7 层均衡器中可以实现的一些特性包括缓存、限流、错误注入和代价敏感的负载均衡(部分请求需要更多的服务端处理时间)。
它们还可以基于请求的属性(例如 HTTP cookies)进行均衡、终止 SSL 连接,并帮助抵御应用层拒绝服务(DoS)攻击。7 层均衡器成本较高,不易扩容——它们为处理请求做了更多的计算,而且每个活动请求都会消耗一些系统资源。在一个或多个 7 层均衡器池前运行 4 层均衡器可以帮助解决扩展问题。
负载均衡是一个复杂的难题。除了本文描述的策略之外,还有不同的 负载均衡算法、用于实现负载均衡器的高可用技术、客户端负载均衡技术以及最近兴起的服务网格。
随着云计算的发展,核心的负载均衡模式也在不断演进,大型 web 服务也将继续改进负载均衡所能提供的控制和灵活性。
查看英文原文:https://opensource.com/article/18/10/internet-scale-load-balancing
活动推荐
随着公司运维场景变得越来越复杂,基于机器学习算法的智能运维已成定局,通过智能运维的发展,运维团队的工作效率将会得到大幅提升。由 InfoQ 中国主办的 ArchSummit 全球架构师峰会即将于 12 月 7-8 日在北京国际会议中心举办,带你了解百度是如何用工程化的方法系统性建设服务可用性,请跟紧步伐!大会目前 9 折优惠购票火热进行中,点击“阅读原文”了解更多详情!
票务 MM 灰灰联系方式:17326843116 (微信同号 等你来撩)。
以上是关于解密因特网级别的负载均衡常用手段的主要内容,如果未能解决你的问题,请参考以下文章