开发者社区> boxti> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
github上开源的UVCCamera为什么不能正常运行
github上开源的UVCCamera为什么不能正常运行
0 0
名垂千古的机会到了,一文说清【给开源大项目贡献代码】二三事(github,pr,fork,ci)
名垂千古的机会到了,一文说清【给开源大项目贡献代码】二三事(github,pr,fork,ci)
0 0
Github 上最大的开源算法库,还能学机器学习!
Github 上最大的开源算法库,还能学机器学习!
0 0
开源多年后,Facebook这个调试工具,再登Github热门榜
让许多工程师合作开发大型应用大多会面临一个挑战,通常没有一个人知道每个模块是如何工作的,这种技能会让开发新功能、调查Bug或优化性能变得困难,为了解决这个问题,Facebook创建并开源了Flipper,一个可扩展的跨平台的调试工具,用来调试 iOS 和 Android 应用。近日又双叒登上了Github热榜。
0 0
Github上热搜的Java开源商城项目合集,这个是真的好
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Hoxton & Alibaba、Spring Boot 2.3、Oauth2、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。 其它的先不说,一起来看看运行效果,首先是注册中心注册服务信息:
0 0
造孽啊!阿里内部的神级项目和JDK源码阅读指南竟惨遭GitHub开源
背景 今天逛GitHub,发现了一个神级项目,作者将整理/记录阅读JDK源码时的理解与体会分享出来,便于大家学习。这里将项目分享出来,让小伙伴们能更好地学习Java。
0 0
同程内网流传的分布式凤凰缓存系统手册,竟遭GitHub强行开源下载
什么是分布式缓存? 分布式缓存能够处理大量的动态数据,因此比较适合应用在Web 2.0时代中的社交网站等需要由用户生成内容的场景。从本地缓存扩展到分布式缓存后,关注重点从CPU、内存、缓存之间的数据传输速度差异也扩展到了业务系统、数据库、分布式缓存之间的数据传输速度差异。 今天给大家分享的是一本从大型互联网大厂系统角度探讨分布式系统的手册,从原理、框架、架构、案例等多个视角对分布式缓存进行了探讨
0 0
聚变!牛客网开源1240页字节算法实录,无意中掀起GitHub刷题热潮
众所周知,字节跳动因为需要较高的推送准确率,所以对于数据结构与算法看得十分重要,放眼全球,字节跳动的数据结构与算法都可以说是“首屈一指”的,可以称得上是最锋利的“矛”,更有甚者说掌握了字节的算法,基本上半个身子就算是进了大厂了,所以算法刷一份字节跳动的算法,还是很有必要的。 应众粉丝要求,凯撒可以说是“跑断了腿,求没了人,熬坏了眼”,终于是搞出了一份相当全面的《字节千题算法实录》,共十四部分,今天免费分享给大家,以感谢大家一直以来对我的支持,一起看下:
0 0
真香!Github一夜爆火,阿里性能优化不传之秘终于开源
性能调优,是从开发岗跃迁至架构岗的拦路虎。如果你是一个小白,那么恭喜你性能优化这个东西你暂时还不需要扛着。但如果你是公司的中坚力量,想把技术水平往架构层面靠近,那么性能优化这个东西你必须要扛下来,并且解决它。
0 0
Github 标星 5.2K+!bloomberg 开源 Python 内存分析器“Memray”
Github 标星 5.2K+!bloomberg 开源 Python 内存分析器“Memray”
0 0
+关注
boxti
12535
文章
问答
文章排行榜
最热
最新
相关电子书
更多
负载均衡是如何支撑几亿手机微博用户访问的 -高性能负载均衡研发和应用实践
立即下载
架构分析、数据整合、负载均衡,梦想旅行解析云上实践
立即下载
负载均衡是如何支撑几亿手机微博用户访问的高性能负载均衡研发
立即下载