当系统面临大量用户访问,负载过高的时候,通常会使用增加服务器数量来进行横向扩展,使用集群和负载均衡提高整个系统的处理能力。

而我们讨论的负载均衡一般分为两种,一种是基于DNS,另一种基于IP报文。

利用DNS实现负载均衡,就是在DNS服务器配置多个A记录,不同的DNS请求会解析到不同的IP地址。大型网站一般使用DNS作为第一级负载均衡。
缺点是DNS生效时间略长,扩展性差。

基于IP的负载均衡,早期比较有代表性并且被大量使用的的就是LVS了。卖二手手机靓号平台原理是LVS在Linux内核态获取到IP报文后,根据特定的负载均衡算法将IP报文转发到整个集群的某台服务器中去。
缺点是LVS的性能依赖Linux内核的网络性能,但Linux内核的网络路径过长导致了大量开销,使得LVS单机性能较低。

那么有没有更好的负载均衡技术呢?当然有。
Google于2016年3月最新公布的负载均衡Maglev就在此列。

Maglev是谷歌为自己的数据中心研发的解决方案,并于2008开始用于生产环境。在第十三届网络系统设计与实现USENIX研讨会(NSDI ‘16)上, 来自谷歌、加州大学洛杉矶分校、SpaceX公司的工程师们分享了这一商用服务器负载均衡器Maglev的详细信息。Maglev安装后不需要预热5秒内就能应付每秒100万次请求令人惊叹不已。在谷歌的性能基准测试中,Maglev实例运行在一个8核CPU下,网络吞吐率上限为12M PPS(数据包每秒),如果Maglev使用Linux内核网络堆栈则速度会小于4M PPS。

无独有偶,国内云服务商UCloud进一步迭代了负载均衡产品——Vortex,成功地提升了单机性能。在技术实现上,UCloud Vortex与Google Maglev颇为相似。以一台普通性价比的x86 1U服务器为例,Vortex可以实现吞吐量达14M PPS(10G, 64字节线速),新建连接200k CPS以上,并发连接数达到3000万、10G线速的转发。


更多相关文章

  1. Linux内核发送构造数据包的方式
  2. 怎样快速调试Linux内核
  3. Linux 内核的五大创新
  4. 带你了解 Unix 的前世今生
  5. Ajax的get,post请求
  6. Google工程师:手机厂商们请不要再自行修改Linux内核代码了
  7. Win 10开始采用Windows Update分发WSL2
  8. “苹果,请送Linus Torvalds一台ARM电脑”
  9. 免费分享HTML5清新文艺个人博客文章类模板(支持移动设备)

随机推荐

  1. 四种获取RSS源xml文件的方法
  2. XML文档类型声明
  3. 解说xml中的空格
  4. XML基本语法介绍
  5. 简单介绍XML Schema中的elementFormDefau
  6. WEB页面工具语言XML带来的好处
  7. 介绍XML和HTML的区别是什么
  8. 认识xml的作用
  9. xml实现多渠道接入网站的构架的方法
  10. xml图像超链接的制作代码