GitHub 将开源内部负载均衡软件

简介:

GitHub负载均衡系统最初是为了处理Git的数十亿日常连接而开发的。

GitHub将发布开源版的GitHub负载均衡软件(GLB),这是内部开发的负载均衡系统。

开发GLB的初衷是满足GitHub的这一要求:每天处理数十亿的HTTP连接、Git连接和SSH连接。而如今,这家公司将通过开源来发布GLB的组件,到时会透露设计方面的细节。

GitHub的高级基础设施工程师乔·威廉斯(Joe Williams)和GitHub的基础设施工程经理西奥·朱利恩(Theo Julienne)在一篇共同撰写的公告中说:“在过去,我们的负载均衡层一向是比较复杂的组件之一。传统上,我们纵向扩展这个部分,运行一小批运行haproxy的超大型机器,并使用非常特定的硬件配置,以便实现专门的10G链路故障切换机制。”

但是这个负载均衡平台遇到瓶颈后,该公司开始着手开发自己的解决方案。这个新平台要满足某些目标,包括横向扩展、高可用性、支持连接清空(connection draining),并且能应对分布式拒绝服务(DDoS)攻击。“为了实现这些目标,我们需要重新考虑IP地址与主机之间的关系、我们的负载均衡层包括的各个层,以及连接是如何路由、控制和终结的。”

GitHub在设计负载均衡平台时,为流量引导器(traffic director)这层竭力改进常见模式。该公司最后选用了一种支持多个查询的聚集哈希(rendezvous hashing)。每个代理主机存储起来,并被分配一个状态,然后处理连接清空。固定大小的转发表生成后,使用聚集哈希的排序组件,每一行都填满了代理服务器的地址。表和代理主机状态被发送到引导器服务器,并保持同步。

TCP数据包一发送到引导器,源端IP就经过哈希处理,生成指向转发表的一致性索引。数据包在注定发送到代理服务器内部IP的另一个IP数据包里面加以封装,并通过网络发送出去。代理服务器收到经过封装的数据包后,拆开数据包,在本地处理原始数据包。出站数据包使用服务器直接返回(Direct Server Return)模式,那样发送到客户端的数据包就直接发送到客户端、绕过引导器这一层。

这两位工程师说:“我们着手设计一种新的引导器层,它具有无状态性,让引导器和代理节点都可以从容地退出轮转,在任何可能的情况下,对用户没有干扰。一些用户生活在互联网连接不尽如人意的国家,所以合理大小的代码库的长时间运行副本不会在合理时间的计划维护期间出现故障,对我们来说很重要。”

文章转载自 开源中国社区 [http://www.oschina.net]

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
13天前
|
存储 JavaScript 网络架构
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
25 3
|
1月前
|
人工智能 文字识别 异构计算
关于github开源ocr项目的疑问
小白尝试Python OCR学习,遇到报错。尝试Paddle OCR部署失败,Tesseract OCR在Colab误操作后恢复失败。EasyOCR在Colab和阿里天池Notebook成功,但GPU资源不足。其他平台部署不顺,决定使用WebUI或阿里云轻应用。求教OCR项目部署到本地及简单OCR项目推荐。
28 2
|
1月前
|
Web App开发 前端开发 数据库
推荐GitHub上开源的一款独立开发者出海技术栈和工具合集
推荐GitHub上开源的一款独立开发者出海技术栈和工具合集
|
1月前
|
机器学习/深度学习 人工智能 API
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
|
1月前
|
自然语言处理 并行计算 PyTorch
GitHub 开源神器 Bark模型,让文本转语音更简单!
GitHub 开源神器 Bark模型,让文本转语音更简单!
|
3月前
|
SQL 存储 数据挖掘
从GitHub火到头条!这套万人期待的 SQL 成神之路PDF,终于开源了!
近年来,随着互联网技术的发展,数据分析领域越来越受到人们的重视。能够有效地操作和分析数据,已经成为很多企业和个人成功的重要保证。SQL 是数据操作和查询的重要工具,掌握它不仅可以帮助我们更好地利用数据,也可以为我们打开新的职业之门。
|
2月前
|
消息中间件 安全 druid
GitHub昙花一现!《Spring Boot趣味实战课》神作开源几分钟被下架
今天给大家分享好书了:刘水镜老师的 《Spring Boot趣味实战课》,网上依旧是没有开源版本!小编会在文末附电子版免费下载方式。 刘水镜是谁? 十余年持续技术文章输出,CSDN博客专家。2020年《 Spring Boot趣味私房课》专栏上线,凭借风趣幽默、深入浅出的写作风格深受读者好评。 《Spring Boot趣味实战课》 内容丰富、趣味实战是本书的两大特色 涵盖 Spring MVC、MyBatis Plus、Spring DaJPA、Spring Security、Quartz等主流框架 整合MySQL. Druid、Redis、 RabbitMQ、Elastics
39 0
|
1月前
|
数据采集 人工智能 Rust
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
181 0
|
10天前
|
负载均衡 算法
软件体系结构 - 负载均衡算法
软件体系结构 - 负载均衡算法
17 4
|
1月前
|
机器学习/深度学习 JSON 自然语言处理
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star