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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

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]

相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
28天前
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
252 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
1月前
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
463 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
2月前
|
Kubernetes Cloud Native 开发者
alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
alibaba-load-balancer-controller v1.2.0:开启云原生网关开源新篇章!敬请探索!
124 61
|
3月前
|
负载均衡 Kubernetes 应用服务中间件
硬件负载均衡和软件负载均衡在可扩展性方面有何不同?
硬件负载均衡和软件负载均衡在可扩展性方面有何不同?
102 57
|
3月前
|
运维 负载均衡 监控
部署硬件负载均衡和软件负载均衡时,分别需要考虑哪些因素?
部署硬件负载均衡和软件负载均衡时,分别需要考虑哪些因素?
149 56
|
3月前
|
运维 负载均衡 测试技术
软件负载均衡和硬件负载均衡分别适合哪些场景?
软件负载均衡和硬件负载均衡分别适合哪些场景?
121 55
|
2月前
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
95 1
|
3月前
|
负载均衡 监控 安全
硬件负载均衡和软件负载均衡的性能如何对比?
硬件负载均衡和软件负载均衡的性能如何对比?
52 1
|
3月前
|
运维 数据可视化 开发者
Dpanel:Star2k,短短时间就被大家称为GitHub开源神器!轻量化Docker面板,还在等什么
如今的软件开发和运维领域,Docker容器技术已经成为一种主流的解决方案,它允许开发者和系统管理员以更高效、更灵活的方式部署和管理应用程序。然而,Docker的命令行界面虽然强大,但对于某些用户来说可能不够直观。今天,我们要介绍的开源项目——dpanel,就是一个轻量化的Docker可视化管理面板,它以其简洁、高效的特点,为用户提供了一个易于操作的界面来管理Docker容器和镜像。
119 0
|
3月前
|
运维 负载均衡 算法
硬件负载均衡和软件负载均衡的价格有什么差异?
硬件负载均衡和软件负载均衡的价格有什么差异?
50 0

热门文章

最新文章