白杨应用支撑平台

上传人:ldj****22 文档编号:35316768 上传时间:2018-03-14 格式:PDF 页数:93 大小:3.17MB
返回 下载 相关 举报
白杨应用支撑平台_第1页
第1页 / 共93页
白杨应用支撑平台_第2页
第2页 / 共93页
白杨应用支撑平台_第3页
第3页 / 共93页
白杨应用支撑平台_第4页
第4页 / 共93页
白杨应用支撑平台_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《白杨应用支撑平台》由会员分享,可在线阅读,更多相关《白杨应用支撑平台(93页珍藏版)》请在金锄头文库上搜索。

1、 白杨应用支撑平台 技术白皮书 版本:2.28 http:/http:/ 版权所有(C): 20012017,白杨,保留所有权利 Copyright (C): 2001-2017, BaiYang, All rights reserved a BaiY Product 白杨应用支撑平台技术白皮书 I 前言 白杨应用支撑平台从 2002 年发布第一版以来已有 15 年历史了。在这十几年里,我一共为支 撑平台编写了超过一百万行汇编、C/C+代码。其中最基础也是最重要的 libutilitis 库几乎完全由 我亲手实现。因为要实现 libutilitis 中包含的大量跨平台(*)功能封装,除了原本就

2、比较了解的 Windows 平台,我也逐渐熟悉并喜爱上了 Linux、FreeBSD/NetBSD/OpenBSD、OpenSolaris 等各 种优秀的操作系统。 对于支撑平台中的其它库,我的主要做法就是以 libutilitis 为基础,设计一套界面/框架。然后 依赖没有版权问题而且品质稳定的第三方代码来实现具体功能。例如:libcrypto 中的密码编码学 和数据压缩算法;libaudioio 中的音频编解码器;libmlgui 中的跨平台 UI 控件等等。在计入第三 方开源代码后,应用支撑平台共包含超过五百万行代码。 多年来,基于支撑平台的各种产品已被广泛部署于包括兴业银行(China

3、 CIB) 、中石油 (CNPC) 、华安保险(Sinosafe Insurance) 、淘宝网() 、易果网() 、烟台万 华集团、 法国兴业银行 (SOCIETE GENERALE) 、 德尔福汽车 (Delphi) 、 美联航 (United Airlines) 、 GE(美国通用电气) 、贝塔斯曼(Bertelsmann) 、埃森哲(Accenture) 、光大银行(CEB) 、壹基 金(One Foundation)等各大企业在内的不同生产环境中。真实生产环境下的大范围部署不但为 上层应用提供了可靠的、平台无关的底层环境,也进一步检验了支撑平台的可靠性、稳定性、可 移植性、高效性等各

4、方面指标。 应用支撑平台著作权归白杨所有,其中多项技术分别受到相应的国家和国际发明专利保护。 注:注:当前支持的操作系统主要包括: Win98/ME,WinNT4/2000/XP/2k3/Vista/2k8/Win7/2k8r2/Win8/8.1/2012/2012r2 等全系列 Windows 产品。 Linux、FreeBSD、NetBSD、IBM AIX、HP-UX、Solaris、MAC OS X 系统及众多 Un*x/POSIX 系统。 vxWorks, QNX, SMX, DOS, WinCE (Windows Mobile), NanoGUI、eCos、RTEMS、Android

5、、iOS 等嵌入式系统。 当前支持的主要硬件平台包括:x86/x64、ARM、IA64、MIPS、POWER、SPARC 等。 a BaiY Product 白杨应用支撑平台技术白皮书 II 快速概览 正如前文所述,支撑平台使用汇编、C/C+ 构建,包含数百万行代码和上千个成熟的通用组 件。支撑平台经过多家 500 强企业实际生产环境以及多个高负载电信、互联网和分布式计算环境 十多年验证。支持各主流操作系统和硬件平台。 上千成熟可靠的高品质功能组件可在性能、功能和稳定性等方面大幅提升软件产品的品质, 并为产品的开发带来了难以想象的便利,例如: 单点支撑千万量级并发的高效 IO 服务器组件 支撑

6、平台使用汇编和异步 IO 对网络服务组件进行了优化, 通过DMA + 硬件中断实现内存零 拷贝的高效异步网络服务。性能、可靠性和可伸缩性都很强。可在 2011 年出厂的,当时售价不 足 2 万元人民币的单台至强 5600 系入门级 1U PC Server 上支撑上千万 TCP/HTTP 并发连接(详 见:3.2.1 高效 IO 框架、3.3.1 Web扩展框架、以及 3.3.2 典型 Web 案例等小节) 。相对应地,一 般由 Java / .NET 开发的服务器端,在相同配置的机器上,单点最高仅可支撑 3000 到 5000 并发, PHP 则更低。 强一致多活 IDC 高可用(HAC)和

7、高性能(HPC)服务器集群 强一致、抗脑裂(Split Brain)的多活 IDC 分布式高可用(HAC)和高性能(HPC)计算集 群支持:独有的 SOA 大规模分布式架构在保持高内聚、低耦合设计的前提下,将单点性能提升 到了远超传统 SOA 架构的水平, 同时简化了集群部署, 提高了集群的可维护性 (详见: 5.4 SOA 基础库libapidbc、5.4.1 SOA vs. AIO、5.4.2 SOA 架构等小节) 。 白杨消息端口交换服务(BYPSS) :一种基于多数派算法的,强一致(抗脑裂) 、高可用的分 布式协调组件,可用于向集群提供服务发现、故障检测、服务选举、分布式锁等传统分布式

8、协调 服务,同时还支持消息分发与路由等消息中间件功能。由于通过专利算法消除了传统 Paxos/Raft 中的网络广播和磁盘 IO 等主要开销,再加上批量模式支持、并发散列表、高并发服务组件等大 量其它优化, 使得 BYPSS可在延迟和吞吐均受限的跨 IDC 网络环境中支持 10 万节点、百亿端口 量级的超大规模计算集群(详见:5.4.3 消息端口交换服务小节) 。 带强一致保证的多活 IDC 技术是现代高性能和高可用集群的关键技术, 也是业界公认的主要 难点。作为实例:2015 年 8月 20 日 Google GCE 服务中断 12 小时并永久丢失部分数据;2015 年 5 月 27 日和

9、2016 年 7月 22 日支付宝两次中断数小时; 以及 2013 年 7月 22 日微信服务中断数小 时等重大事故均属于产品未能实现多活 IDC 架构,单个 IDC 故障导致服务全面下线的惨痛案例。 在上述方面,我方拥有超过十年的积累,掌握多项受国家和国际发明专利保护的分布式架构a BaiY Product 白杨应用支撑平台技术白皮书 III 和算法。得益于这些领先的强一致、高可用、高性能分布式集群算法和架构,我们在蓝鲸、白豚、 职业精等全线产品上,均实现了真正的多活 IDC 架构,为客户提供了无以伦比的数据可靠性和服 务可用性保证。 分布式协调服务 图 1 分布式协调服务为集群提供服务发现

10、、服务选举、故障检测、故障转移、故障恢复、分布式 锁、任务调度,以及消息路由和消息分发等功能。 分布式协调服务是分布式集群的大脑,负责指挥集群中的所有服务器节点协同工作。将分布 式集群协调为一个有机整体,使其有效且一致地运转,实现可线性横向扩展的高性能(HPC)和 高可用(HAC)分布式集群系统。 a BaiY Product 白杨应用支撑平台技术白皮书 IV 图 2 传统的 Paxos/Raft分布式协调算法为每个请求发起投票,产生至少 3 次网络广播(b1-b3)和 多次磁盘 IO。使其对网络吞吐和通信时延要求很高,无法部署在跨 IDC(城域网)环境。 我们的专利算法则完全消除了此类开销。

11、因此大大降低了网络负载,显著提升整体效率。并 使得集群跨 IDC 部署(多活 IDC)变得简单可行。 a BaiY Product 白杨应用支撑平台技术白皮书 V 图 3 基于我方独有的分布式协调技术,可实现高性能、强一致的多活 IDC 机制。 可在秒级完成故 障检测和故障转移,即使整座 IDC 机房下线,也不会导致系统不可用。同时提供强一致性保证: 即使发生了网络分区也不会出现脑裂(Split Brain)等数据不一致的情形。例如: a BaiY Product 白杨应用支撑平台技术白皮书 VI 图 4 在传统的双机容错方案中,从节点在丢失主节点心跳信号后,会自动将自身提升为主节点, 并继续

12、对外提供服务,以实现高可用。在此种情形中,当主从节点均正常,但心跳连接意外断开 时(网络分区) ,就会发生脑裂(Split Brain)问题,如图 4 所示:此时 A、B 均认为对方已下线, 故将自己提升为主节点并分别对外提供服务,产生难以恢复的数据不一致。 我方 BYPSS 服务可提供与传统 Paxos/Raft 分布式算法相同水平的强一致性保证,从根本上 杜绝脑裂等不一致现象的发生。 类似地:工行、支付宝等服务也有异地容灾方案 (支付宝: 杭州 深圳、 工行: 上海 北 京) 。但在其异地容灾方案中,两座 IDC 之间并无 Paxos 等分布式协调算法保护,因此无法实现 强一致,也无法避免

13、脑裂。 举例来说, 一个在支付宝成功完成的转账交易, 可能要数分钟甚至数小时后才会从杭州主IDC 被异步地同步到深圳的灾备中心。杭州主 IDC 发生故障后,若切换到灾备中心,意味着这些未同 步的交易全部丢失,并伴随大量的不一致。比如:商家明明收到支付宝已收款提示,并且在淘宝 交易系统看到买家已付款,并因此发货。但由于灾备中心切换带来的支付宝交易记录丢失,导致 在支付宝中丢失了相应的收入, 但淘宝仍然提示买家已付款。 因此, 工行、 支付宝等机构在主 IDC 发生重大事故时,宁可停止服务几个小时甚至更久,也不愿意将服务切换到灾备中心。只有在主 IDC 发生大火等毁灭级事故后,运营商才会考虑将业务

14、切换到灾备中心 (这也是灾备中心建立的a BaiY Product 白杨应用支撑平台技术白皮书 VII 意义所在) 。 因此,异地容灾与我方的强一致、高可用、抗脑裂多活 IDC 方案具有本质区别。 由于消除了 Paxos/Raft 算法中的大量广播和分布式磁盘 IO 等高开销环节,配合支撑平台中 的高并发网络服务器、以及并发散列表等组件。使得 BYPSS 分布式协调组件除了上述优势外, 还提供了更多优秀特性: 批量操作批量操作:允许在每个网络包中,同时包含大量分布式协调请求。网络利用率极大提高,从 之前的不足 5% 提升到超过 99%。 类似于一趟高铁每次只运送一位乘客,与每班次均坐满乘客之

15、间的区别。实际测试中,在单千兆网卡上,可实现 400 万次请求每秒的性能。在当前 IDC 主流的 双口万兆网卡配置上, 可实现 8000 万次请求每秒的吞吐。 比起受到大量磁盘 IO 和网络广播限制, 性能通常不到 200 次请求每秒的 Paxos/Raft 集群,有巨大提升。 超大容量超大容量:通常每 10GB 内存可支持至少 1 亿端口。在一台插满 64 根 DIMM 槽的 1U 尺寸 入门级 PC Server 上 (8TB) , 可同时支撑至少 800 亿对象的协调工作; 在一台 32U 大型 PC Server 上(96TB) ,可同时支撑约 1 万亿对象的分布式协调工作。相对地,传

16、统 Paxos/Raft 算法由于其 各方面限制,通常只能有效管理和调度数十万对象。 综上,我方专利的分布式协调算法,在提供与传统Paxos/Raft算法相同等级的强一致性和高 可用性保证之同时,极大地降低了系统对网络和磁盘 IO 的依赖,并显著提升了系统整体性能和 容量。对于大规模、强一致分布式集群的可用性(HAC)和性能(HPC)等指标均有显著提升。 关于 BYPSS服务的进一步描述,详见:5.4.3 消息端口交换服务。 高效、高强度的密码编码学组件 包含公钥算法、对称加密算法、数据编解码、散列和消息验证算法、数据压缩算法等基础功 能组件(详见:4. 跨平台密码编码学算法库libcrypto、4.1 密码编码学算法模块algorithm 等 小节) 。除此之外,支撑平台还提供了多个经过高度抽象、可开箱即用的高级密码编码学功能组 件,例如: 支持实时压缩和强加密的虚拟文件系统(VFS) ,VFS 支持包括AES(128/256) 、TwoFish 等 在内的数十种

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号