AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

LB 服务:硬件如何被软件取代(上)

  • 2020-04-01
  • 本文字数:1579 字

    阅读完需:约 5 分钟

LB服务:硬件如何被软件取代(上)

大业务上云,难免要用到 LB。可是,您是否了解 LB 的来龙去脉?本文浅谈一下 LB,从硬件走到软件,他们经历了什么转变。


几年前,刚接触网络的时候,就听过一个称呼:四层交换。



四层交换,顾名思义,就是基于传输层的 TCP/UDP 协议进行数据交换的,利用端口信息区分报文,可进行数据包过滤、服务质量(QoS)、负载均衡、主机备用连接、统计和报告等。而我们使用最频繁的,便是负载均衡(LB)。


盒子时代,业界最出名的三家四层交换厂商:F5、citrix、radware。至今还称霸着负载均衡的市场。



四层交换在负载均衡另有,主要提供三大类负载均衡服务:


  • LSLB:Local Server Load Balance

  • GSLB:Global Service Load Balance

  • LLB:Link Load Balance


LSLB(本地负载均衡):给本地集群部署的多台服务器提供流量负载分担能力。应用的 V-IP 在四层交换上,四层交换根据配置的负载均衡算法和会话保持算法分发给后端服务区。



这里提到两个概念,负载均衡算法会话保持算法


负载均衡算法:即流量到了 LB 以后,应该分给谁,常见的算法有轮询、最小用户数、最小流量、哈希等。


会话保持算法:首包通过负载均衡算法确定发给具体那一台后端以后,要生成 session,以指导后续报文转发。而生成的 session 可以根据配置只记录某些信息,比如只记录源地址而不纪录端口,这样相同的源的不同请求(源 port 不一样)也会发给相同的后端。


GSLB(全局负载均衡):应用在多站点部署,GSLB 可根据访问者的位置,提供就近接入能力。其实 GSLB 更多地是一种 DNS 重定向能力。



如图,访问者在广州,要去访问:www.huawei.com,请求本地 DNS 解析时,DNS 通过递归查询发现域名是托管在 GSLB 的,于是向 GSLB 发出申请,GSLB 通过测试自己到 DNS 的延迟,识别出来广州站点离用户最近,于是将广州的 IP 地址返回给用户,用户请求被重定向给广州站点。


LLB(链路负载均衡):当访问一个应用,有多条线路可以同时到达时,LLB 会提供线路优选,根据访问者或者线路的负载情况选择最有线路。常用于优选电信和联通都存在线路接入的场景。



这几种负载均衡场景,都是 IT 行业里最普遍的场景。而 F5、Radware、Citrix 也是 IT 界大名鼎鼎的公司。并且随着技术的演进,四层交换设备已经不仅仅只能提供四层的 LB,七层的能力已经逐步完善。


可是为何到了云时代以后,他们的名声虽然依旧响亮,但是始终感觉不如从前了呢?而上面的几种功能,在云时代又是如何提供的呢?


再强大的盒子,能支撑的流量也不过百 G 级别。而在互联网迅速崛起的年代,100G 流量根本不算什么,王者荣耀据说流量总和已经达到了 800G(小道消息,待考证)。而类似于 google 的 8.8.8.8,对流量和可靠性的需求,根本不是一个盒子可以承担得起的。


于是近几年,负载均衡软件蓬勃发展,结合动态路由协议实现 anycast 等能力后,拓展性和可靠性达到了一个质的飞跃。


LSLB 逐步被 HA proxy、LVS、Nginx 等软件代替,各大互联网公司也纷纷基于开源软件进一步开发加固,做出了自己的 LB 集群。比如腾讯的 TGW,还有阿里的 LVS 集群等。


而 GSLB,其实也只是承担了一个 DNS 重定向的能力,也逐步被智能 DNS 解析服务所取代,比如 AWS 敢于承诺 100%可用性的 Router53、腾讯的 dnspod 等。


LLB 呢?被运营商提供的 BGP 线路所取代。传统的 LLB 还需要每一个运营商 1 个 IP,而 BGP 直接允许相同的 IP 在不同的运营商网络里广播,根据 BGP 协议自己实现就近接入。


当然,云还是比较包容的。盒子可能不太适合大规模服务化,但是给某一些企业使用还是很不错的选择,AWS 跟 F5 合作,可以将 F5 软件化,部署到 VM 中,在云的模式下还可以继续提供服务。


华为云服务中,也同样提供了各种负载均衡方案,以支持业务 LSLB 和 GSLB 的需求。具体华为云如何提供?使用华为云 ELB 服务有哪些注意事项?


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/t93Gp5ZuJSSqp7zfGbOqow


2020-04-01 21:141580

评论

发布
暂无评论
发现更多内容

从零到MySQL架构师学习内容整理

hanaper

HTML进阶(二)

Augus

html 9月日更

设计模式类型

一个大红包

9月日更

一文说清BIO、NIO、AIO不同IO模型演进之路

慕枫技术笔记

后端 引航计划

测试模型中理解压力测试和负载测试

FunTester

性能测试 接口测试 压力测试 FunTester 负载测试

自定义aop实现Cacheable注解(零拷贝), CacheItemGet,CacheMapGet,CacheMapPut

张音乐

Java 缓存 注解 9月日更

全球国家简码信息表

入门小站

工具

MySQL + Keepalived 双主热备搭建

Se7en

三大「价值流」搞定技术型管理

蔡建斌

管理 技术管理 精益 引航计划 内容合集

如何从零搭建起一支技术团队

石云升

团队管理 管理 引航计划 内容合集 9月日更

Python——内置函数----让你偷懒的工具

在即

9月日更

MySQL五个常见的高可用方案

hanaper

如何PWA构建现代离线应用程序

devpoint

Service Worker 9月日更

大厂敲门砖!P9技术官级别的顶级并发编程宝典,献给想去大厂的你

Java 编程 面试 程序人生 p9

linux之chattr命令

入门小站

Linux

计算机工业的生态链(三)

姬翔

9月日更

世界的尽头是铁岭,互联网的尽头是它

艾小仙

用IoT放羊养牛,不出门也能知道它们的动向

华为云开发者联盟

物联网 华为云 iotda 畜牧业 华为云物联网平台

如何从数据到资产

奔向架构师

数据治理 9月日更

ebay支付账务系统架构解析之“读”一无二

贾奇 (Jacky)

支付系统 CQRS 读写分离

编程基础:CPU资源监控

正向成长

CPU调度

KVM虚拟机常用管理命令

玏佾

kvm 虚拟主机

架构训练营 模块7 - 王者荣耀商城异地多活架构设计

sophiahuxh

简单五步:给你的 Golang 应用加一个 GUI ( Electron 驱动)

baiyutang

UI 跨平台 Go 语言 GUI 9月日更

网络攻防学习笔记 Day132

穿过生命散发芬芳

网络模型 9月日更

性能测试中标记请求参数实践

FunTester

性能测试 接口测试 压力测试 FunTester 标记参数

带你读AI论文丨用于细粒度分类的Transformer结构—TransFG

华为云开发者联盟

细粒度 映射 Transformer TransFG 差异性图片

网卡修改网速和buffer

耳东@Erdong

9月日更 网卡

快速上手Apache POI

卢卡多多

POI Apache POI 9月日更

循环神经网络LSTM RNN回归:sin曲线预测

华为云开发者联盟

RNN 循环神经网络 LSTM LSTM RNN回归

如何选择收银机主板?

双赞工控

安卓主板

LB服务:硬件如何被软件取代(上)_文化 & 方法_华为云产品与解决方案_InfoQ精选文章