文档章节

内部体验腾讯负载均衡的新功能

偶素浅小浅
 偶素浅小浅
发布于 2017/03/01 20:43
字数 898
阅读 38
收藏 0

版权声明:本文由吴逸翔 原创文章,转载请注明出处: 
文章原文链接:https://www.qcloud.com/community/article/538713001487764019

来源:腾云阁 https://www.qcloud.com/community

 

有个朋友的web服务,因为在线用户数目平常波动很大,按照最大在线数部署服务器显然太浪费,所以选择了腾讯云的弹性伸缩(AutoScaling)服务,在每天用户集中上线的时间点上快速扩容服务器加入到集群中分散压力。因此在集群遭遇到突发的访问压力的时候,快速的自动扩容能力就显得非常重要了。前阵子还专门为此请教了腾讯云专家,解析了快速生成主机的不传之秘 。

但是快速生成了主机并加入集群,并不能确保主机快速的分担压力,因为腾讯云的负载均衡目前只支持IP hash 和按权重轮询两种方式,这两种分配算法在新服务器加入后都需要经过一段短时间的预热才能逐步分配到流量。因此扩容后的曲线常常会是这样子的(刚刚进行的扩容实测,为了降低对业务影响测试了5分钟就停掉了):

注意红色曲线和横轴重合的部分:

(第一分钟0Mbps)

(第二分钟0Mbps)

(第三分钟0Mbps)

也就是说,虽然生成一台服务器我们可以优化到数十秒,但是新服务器加入集群后的前面几分钟几乎没有请求分发到新服务器上,随后才步入正轨。这样显然延长了压力缓解过程,让更多用户忍受了几分钟的恶劣体验。

那有没有办法缩短这个过程呢?腾讯云近期将推出的新的负载均衡轮询算法就可以解决这个问题。新算法被称为“最小连接数”算法,也就是LB会随时判断哪台主机上的HTTP连接数最少,然后尽量把新的请求分发给它。经过一番软磨硬泡,终于从负载均衡团队磨到了新LB算法的内测体验资格,立刻做了一个扩容实验。我们来看看效果:

可以看到,最开始和横轴重合的一段消失了,新服务器在接入的第一时间立刻分摊到了访问量并输出流量,集群中过载的服务器压力也就立刻得到了缓解。

不只是扩容过程会从新算法中收益,实际上在以往的算法中,集群中的服务器都难以即时分担彼此的压力,当某一台或者几台服务器压力过大的时候,LB只会继续按照权重随机的分配新的请求给它,而不是降低它的权重,让它缓一缓。而在新算法中,如果一台服务器负担压力过重导致请求无法及时响应完成,LB就会观察到它的连接数增加,并把更多的请求分配给连接数更少的服务器,从而达到更优的负载均衡效果。

当然,要充分获得这些优势都要取决于接入服务器已经实现了『无状态化』这个前提,否则负载均衡也无法随意的把一台服务器的压力转移到另一台上面。

分享至

 

  

本文转载自:

偶素浅小浅
粉丝 8
博文 202
码字总数 0
作品 0
信阳
私信 提问
跨园区容灾,升级不停服:高可用负载均衡集群实践

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云中间件团队 发表于云+技术周刊特别版 作者:方坤丁 对于云计算行业来说,云服务的可用性和可扩展性是的检测其服务质...

腾讯云加社区
2018/08/09
0
0
实现全球同服,保障业务出海——腾讯云跨域加速解决方案

业务出海难在哪? 欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:方坤丁 传统的出海方案 以游戏业务为例,国内游戏厂商在海外发行游戏时,面临的首要问题即怎样在保障功能的情...

云加社区
2018/01/24
144
0
腾讯云负载均衡CLB的那些“独门利器”

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:李想 腾讯人做产品一直是很贴近用户的需求的,腾讯云也不例外。负载均衡器作为公有云上的最基础的网络服务,几乎每家云厂商都会...

云加社区
2018/01/10
0
0
负载均衡器技术Nginx和F5的优缺点对比

对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。   目前有许多不同的负载均衡技术用以满足不同的应...

Zero零_度
2015/04/17
5.6K
2
腾讯云公网负载均衡技术实现详解

相关阅读: 阿里P7/P8学习路线图——技术封神之路 十几位资深架构师,整理了最新架构师学习体系,分享给大家...... 互联网技术(java框架、分布式、集群)干货视频大全,不看后悔!(免费下载)...

互联网架构师
2018/04/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

架构师的十大学习步骤

架构师有十大步第一步: 学习两种抽象视角 (Abstraction View) 架构师的第二步: 关心下层的变动自由度 ( 没钱就改版,改版就有钱 ) 架构师的第三步: < 系统架构控制力 > 支撑 < 商业竞争话...

请叫我小可爱呀
2分钟前
1
0
node处理静态模板无法自动引入问题

本文是在参考张鑫旭大神的文章所写,对其进行了一些优化,在原文中只对入口文件 import/import-example.html做了监控,当footer.html发生改变时,最终文件并不会发生变化,此时需要对import/...

litCabbage
2分钟前
1
0
关于PHP的命名空间

这篇文章介绍的内容是关于PHP的命名空间 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 什么是PHP命名空间 PHP手册:从广义上来说,命名空间是一种封装事物的方法。在很多...

chenhongjiang
4分钟前
1
0
sync.Once 多次调用一次执行

demo package mainimport ("fmt""sync")func main() {var once sync.OnceonceFunc := func() {fmt.Println("this func do once")}done := make(chan bo......

李琼涛
4分钟前
1
0
AliOS Things 3.0应用笔记:http client简单应用

简介 AliOS Things 3.0版本于9月27日在云栖大会正式发布,在新版本中带来了全新的应用开发框架,帮助用户快速构建自己的应用。使用户可以更专注于自身应用的开发。 AliOS Things 3.0版本新增...

阿里云官方博客
12分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部