深入探讨跨端、IoT 动态开发、DevOps等大前端方向热门技术话题,这里直达 了解详情
写点什么

下一代负载均衡的思考与实践

  • 2022 年 7 月 19 日
  • 本文字数:2329 字

    阅读完需:约 8 分钟

下一代负载均衡的思考与实践

当下,Web 3.0 大火,各种炒币、非同质化代币、元宇宙等应用模式纷纷粉墨登场。这些场景有一个共同的点就是——上”链”(这里所说都是指公链。我个人认为联盟链都是假的,巨头的跑马圈地,最多就是 Web 2.0 重来一遍。只有公链才是真的,所有场景都值得重塑一遍)。上”链”有一点难度的,一是因为应用场景可能受政治因素影响,另外一个是技术也是影响场景落地的一个关键要素。


我认为技术关键点可能有三个,计算、存储和网络。这其中,又以网络因素影响最大。为什么呢?无限计算和存储的基础是通过网络连接构成一个”超级计算机”,使其拥有海量算力和存储。所以如何提高网络”力量”是根本,如何无”墙”连接?如何提速?如何合理流量调度?都是需要我们解决的问题。今天,咱们来一起聊下网络的流量调度,这时候就不得不提网络流量大闸——负载均衡。

一. 背景与现状


主流的负载均衡器有很多,大致分为两类,商业和开源。商业负载均衡代表产品有 F5 和 A10,它们的典型特征是运行稳定,功能齐全,但价格偏高,性能有限。例如 F5 中端产品 配置 4core CPU-32G mem-1G net bandwidth 的,应对如今的互联网的海量数据转发场景,根本无法应对。价格又偏高,低端 BIG-IP I2000 系列是 25 万+,中端 BGP-IP i4000 系列是 45 万+。性价比极低。



开源负载均衡又可以分为两类,一类是成熟的开源负载均衡,例如 Nginx、Haproxy 等。典型特征是功能基本满足,灵活,但缺少 vip 管理,热加载功能会造成业务抖动,配置数据基于文件存储,管理困难,对于企业级应用,不成熟。另一类是新兴开源负载均衡,例如 iqiyi dpvs、openELB 和 metaLB 等,特点是要么架构复杂,依赖特别多,dpvs 是典型代表。或者,社区不活跃,维护比较困难,有问题基本靠自己解决,难上加难。


综述,我们是否能有一个负载均衡器?它是一种全新设计模式的,分布式的,性能强的,云原生的,它是为未来海量流量调度而生的。它能充分解决上述问题,设计简单,成本低又易用?——是的,是有的,那就是负载均衡器-合页(Parasaus)。 


二. 原理:设计架构与实现特性


合页(Parasaus)按照数据面和控制面分离的架构而设计,数据面只负责数据转发,控制面负责 watch 条目的变化、管理员的增删改查及节点探活,架构简单清晰。

  1. 数据面的流量转发节点无状态,支持横向扩展,最多支持 254 个节点。

  2. 流量转发基于 lvs 实现,流量转发在内核态完成,性能优异,非常高效。

  3. 整个负载均衡维护一个 ip 地址池和端口池,容量有 35000 个地址。可以为每个服务都创建一个连接地址。

  4. 控制面比较轻量,功能简洁,circle-watch 模块观察到条目变化,触发一个 hook,在 circle-healthcheck 添加探活条目,用以及时监测到服务是否可用。circle-healthcheck 探测到有不可用服务条目或服务恢复条目时,触发一个 hook,在数据面对转发流量进行调整,使流量能全部转发到所有服务健康节点上。

  5. 服务健康检查方式支持三种,分别是 L7 http、L4 tcp、mysql。

  6. 支持容器部署,产生的元数据存储到 etcd 中,易于管理,并保证高可用。

  7. 数据面的实现借鉴了 Kubernetes Service 的架构,支持多种负载均衡策略,例如 RR、LC、WLC、WRR、Source Hash 等。

  8. 配置的增删改均支持热加载,即使是业务高峰期,对业务也是零影响。

  9. 硬件均采用普通 x86 服务器,无需任何特殊配置(例如 dpvs 的 dpdk 驱动)或硬件,成本极低。自主可控,支持信创。

  10. 管理接口支持多种方式,例如接口、Yaml 文件和 Dashboard 界面,简单易操作。


三. 应用场景:为云原生而生


场景 1:完全云原生,是 Cloud-Native,更是 Kubernetes-Native 的,可大幅缩短通讯链路,有效降低延迟。举例:在传统场景中,K8S 中 pod 应用对外部服务的访问必须流出容器集群虚拟网络而进入数据中心物理网络,每次进出其他子网和经过转发节点(例如 DNS、负载均衡等),都会耗费时间,且增加故障域,如下: 



在新场景中,借助合页((Parasaus)的强大功能,可实现流量转发操作全部在一个区域内完成。针对以上案例,负载均衡和探活功能由合页完成,且是在容器集群内全部完成,大大缩短链路和减少故障域。 



场景 2:在数据中心内进行流量调度,用作于基础设施底层的一环,将流量在南-北向和东-西向进行合理分配。 


四. 优势表现


  1. 性能:

我们针对当前比较主流的负载均衡开源产品进行了比较和测试,相较于 Nginx、Haproxy,合页(Parasaus)性能表现更好。


 

2. 稳定性:

因为合页((Parasaus)负载均衡是完全分布式的,网络流量是从交换机上通过等价路由完全均匀转发的。发生故障时,可以在 10 秒内完成故障转移,所以 SLA 是非常有保证的。

3. 成本:

在合页((Parasaus)作为云原生负载均衡的场景中,合页是作为一个应用运行在云中(1-3 个 pod),基本等同于免费。毋庸置疑,肯定比云上的任何一个负载均衡成本都低。hw 负载均衡 >0.32 元/小时,tencent 负载均衡 >0.788 元/小时,ali 负载均衡 >0.1+0.02*GB 元/小时(计算价格像是双 11 的网购,需要有奥数的本领)。

另外一个场景,合页(Parasaus)作为一台标准负载均衡,只需要三台服务器,估计 10w 左右,便可获得拥有海量数据转发的能力。比任何一种商业负载均衡价格都低。

五. 使用方式


目前合页(Parasaus)负载均衡支持三种方式,分别是 Dashboard 页面、Yaml 文件和 API 接口方式,使用方便,对开发人员和运维人员都很友好。举例:

Dashboard 页面方式: 



Yaml 文件方式:


六. 关于合页(Parasaus)

合页(Parasaus)是 NextArch 基金会孵化的首个面向企业级生产就绪的下一代云原生分布式负载均衡开源项目。旨在为企业级用户提供多元、复杂化的使用场景,如数据中心、边缘、虚拟化/容器等场景,具有高安全性和稳定性、易部署和易运维可扩展等优点。


最后,希望有兴趣的同学关注和使用合页(Parasaus)Github加入社区,共同成长。


Github地址:https://github.com/Dinosaur-Park/heyelb

2022 年 7 月 19 日 18:135539

评论

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

【C语言】一篇速通操作符

謓泽

C语言 操作符 3月月更

微服务身份认证需求下的私钥托管痛点与破局

全象云低代码

微服务 低代码 身份认证 鉴权 密钥

EMQ 正式成为 OASIS 最高级别成员,主导推进物联网协议标准化应用

EMQ映云科技

开源 物联网 ibm mqtt OASIS

2022年1月娱乐直播行业用户洞察:行业格局稳定,内容运营精细化

易观分析

上手体验!如何借助龙蜥实验室快速部署 Web 应用?

OpenAnolis小助手

开源 国产操作系统 web服务器

Web 键盘输入法应用开发指南 (3) —— 输入法事件

天择

JavaScript 键盘 输入法 3月月更

脱颖而出!OceanBase 入选 2021“科创中国”开源创新榜单

OceanBase 数据库

数据库 分布式 OceanBase 开源 科创中国

DM 中 relay log 性能优化实践丨TiDB 工具分享

PingCAP

会声会影2022脸部索引功能详解

懒得勤快

始于信任 忠于专业|DataPipeline收到一封来自山东城商行联盟的感谢信

DataPipeline数见科技

java培训:MyBatis的架构与原理分析

@零度

mybatis JAVA开发

首发|Clusterpedia 0.1.0 四大重要功能

Daocloud 道客

开源项目 多云管理 K8s 多集群管理 多云资源复杂检索

《重构 JavaScript》读后感和部分摘录

道道里

前端 测试 重构

数仓中长跳转问题复现及解决方案

华为云开发者联盟

寄存器 GaussDB(DWS) 长跳转 编译器O2

IOS技术分享| anyLive 开源项目

anyRTC开发者

ios 音视频 移动开发 视频直播 开源demo

混合云管平台排名您知道吗?看这里!

行云管家

混合云 云管

高性能图计算系统 Plato 在 Nebula Graph 中的实践

Nebula Graph

图数据库 图计算 分布式图数据库

如何获取 Docker 容器的 IP 地址

AlwaysBeta

Docker 容器

大数据培训:Spark高频面试题汇总

@零度

大数据 spark

从Nacos到完全自研|得物的注册中心演进之路

得物技术

架构 raft 注册中心 实例 兼容性测试

2022年数据库审计厂家就选行云管家!功能强大!

行云管家

数据库 网络安全 数据库审计

分布式调度引擎 elastic-job3 源码分析 (七)- 总结与规划

中间件XL

zookeeper Elastic-job 分布式协调 分布式调度引擎

web前端培训:Vue3 调度系统的深度剖析

@零度

Vue 前端开发

智汇华云 | Kubernetes多集群管理方案kubefed原理解析

华云数据

云计算 华云数据 虚拟云

2022,你的团队距离持续部署还有多远?| 研发效能提升36计

阿里云云效

阿里云 云原生 持续部署 研发团队 研发

一文全面掌握大数据关联与汇聚

云智慧AIOps社区

redis Clickhouse flink sql 大数据开发

《隐私计算》重磅发布,全面、系统论述数据要素安全流通价值

博文视点Broadview

金融行业数据库架构实践与运维 | DBTalk 技术公开课第2期

金融行业数据库架构实践与运维 | DBTalk 技术公开课第2期

下一代负载均衡的思考与实践_架构_卢万龙_InfoQ精选文章