跨园区容灾,升级不停服:高可用负载均衡集群实践 (2)

目前CLB已能做到客户无感知的,完成服务器升级。升级时会选取集群一半负载均衡器,停掉OSPF协议,实行“温暖关机”。将其权重设置为0,从而保证数据包不会在经过这几台LB。另一半LB集群会接管预备关机LB的流量,集群内连接同步,负责接管的LB上具有全量的连接信息,连接不会中断。升级完成后的LB将重新启动ospf,加入集群,正常服务。

三、高可扩展性 a. 性能强劲 1)流量分发

腾讯云负载均衡内部实现,利用了intel DPDK提供的高性能多核开发框架、hugepage内存管理及ring buffer共享队列方案,CLB团队将DPDK常见的逻辑设计框架run-to-completion与pipeline结合。极大提升了流量分发的效率。

img

2017年1月28日,微信公布了用户在除夕当天收发微信红包的数量:142亿个,而其收发峰值也已达到76万每秒。面对亿级的用户数及百亿级的红包,系统的性能至关重要。而承载新年红包的手机QQ和微信都接入了腾讯云负载均衡集群,得到了有效的性能保障。CLB单集群可承受的TCP最大并发连接数超过1.2亿,处理峰值40Gb/s的流量,每秒处理包量(QPS)可达600万。为广大用户提供了流畅、愉快的抢红包体验,实现了除夕夜系统零故障。

img

2)Https加速

CLB性能上最大的一个难题是如何提升HTTPS的效率。同样的物理设备下cpu满负载,nginx SSL完全握手的性能不到普通HTTP性能的10%,如果说HTTP的性能是QPS 1万,HTTPS可能只有几百。为什么会这么低呢?

1、主要是RSA算法,它对性能的影响占了75%左右;

2、ECC椭圆曲线如果使用最常用的ECDHE算法,这部分约占整体计算量的7%;

3、对称加解密和MAC计算,它们对性能影响比较小,是微秒级别的。

有了这些分析结论,优化的方向就很明确了:

1、减少完全握手(采用分布式session cache、全局Session ticket、自定义session ticket)

2、RSA异步代理计算

3、对称加密优化

img

img

经过以上努力CLB团队通过异步代理、减少完全握手等方式,释放了CPU负载,。经过优化后,https请求的访问时延与http请求相差无几。单集群的单台云服务器完全握手性能可达到65000QPS,长连接时单台服务器性能可以达到300000QPS。完美的支撑了红包业务对SSL卸载的性能要求

b. 均衡能力丰富

我们来看看另一个case。分期乐一家专注于大学生分期购物的在线商城及金融服务提供商,提供分期贷款和还款服务。原分期乐(fenqile.com)的电商门户,有三十多个业务模块,通过多个二级域名、公网IP来分隔业务模块。门户的日PV超过亿次,峰值带宽超过5GB。

随着访问量的增多,其自建的nginx负载均衡集群已无法承载海量的请求,频繁出现丢包、SSL卸载慢等额问题。为了保证其业务在九月开学大促、双十一大促中平稳运行,分期乐引导部分流量到云端架构中,通过负载均衡进行业务整合:

img

1)Content base的流量转发

为了实现业务分离,分期乐使用七层负载均衡获取HTTP/HTTPS头部信息,并根据企业业务的实际需要,将请求路由到不同的后端服务器集群,从而让负载均衡基于内容进行路由转发。此外,采用了细致到转发组级别的健康检查,具有更强灵活性,满足更多业务场景。

分期乐业务架构中,通过自定义域名/URL,实现了基于内容的路由转发。根据业务类型,分期乐配置了a.fenqile.com/image 和a.fenqile.com/text 两个URL路径。通过识别请求内容,将后缀带有/image的请求转发到后端服务器群组1,并将后缀带有/text的请求转发到后端服务器群组2,从而保证了流量分发到不同的服务器群组中,减轻单个节点的负载。原来以上配置都需要在自建的nginx location中配置完成,转发请求时消耗大量的cpu资源,现在交给CLB就好了。

CLB同时提供多元化的重定向能力,可以满足电商的两种场景:A.浏览器发起的http请求,强制转换为https请求,加密更可靠。B.电商中商品更替、库存售罄、后端某服务器负载过高(限制连接数、请求)等场景,常见的做法是直接拉黑页面,给client端返回404、503。但这种体验太差了,CLB支持智能重定向,将超负载的请求,转发到其它页面,如门户首页。

2)专线接入

迁移上云从不是一蹴而就的,腾讯云强大的专线互联能力,满足客户逐步从自建IDC将业务迁移上云的能力:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsszyz.html