一般互联网公司 如何进行高并发的架构

一般互联网公司 如何进行高并发的架构,第1张

一、什么是高并发

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。

响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。

吞吐量:单位时间内处理的请求数量。

QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。

并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。

二、如何提升系统的并发能力

互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。

垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:

(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好的网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;

(2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;

在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。

不管是提升单机硬件性能,还是提升单机架构性能,都有一个致命的不足:单机性能总是有极限的。所以互联网分布式架构设计高并发终极解决方案还是水平扩展。

水平扩展:只要增加服务器数量,就能线性扩充系统性能。水平扩展对系统架构设计是有要求的,如何在架构各层进行可水平扩展的设计,以及互联网公司架构各层常见的水平扩展实践,是本文重点讨论的内容。

三、常见的互联网分层架构

常见互联网分布式架构如上,分为:

(1)客户端层:典型调用方是浏览器browser或者手机应用APP

(2)反向代理层:系统入口,反向代理

(3)站点应用层:实现核心应用逻辑,返回html或者json

(4)服务层:如果实现了服务化,就有这一层

(5)数据-缓存层:缓存加速访问存储

(6)数据-数据库层:数据库固化数据存储

整个系统各层次的水平扩展,又分别是如何实施的呢?

四、分层水平扩展架构实践

反向代理层的水平扩展

反向代理层的水平扩展,是通过“DNS轮询”实现的:dns-server对于一个域名配置了多个解析ip,每次DNS解析请求来访问dns-server,会轮询返回这些ip。

当nginx成为瓶颈的时候,只要增加服务器数量,新增nginx服务的部署,增加一个外网ip,就能扩展反向代理层的性能,做到理论上的无限高并发。

站点层的水平扩展

站点层的水平扩展,是通过“nginx”实现的。通过修改nginxconf,可以设置多个web后端。

当web后端成为瓶颈的时候,只要增加服务器数量,新增web服务的部署,在nginx配置中配置上新的web后端,就能扩展站点层的性能,做到理论上的无限高并发。

服务层的水平扩展

服务层的水平扩展,是通过“服务连接池”实现的。

站点层通过RPC-client调用下游的服务层RPC-server时,RPC-client中的连接池会建立与下游服务多个连接,当服务成为瓶颈的时候,只要增加服务器数量,新增服务部署,在RPC-client处建立新的下游服务连接,就能扩展服务层性能,做到理论上的无限高并发。如果需要优雅的进行服务层自动扩容,这里可能需要配置中心里服务自动发现功能的支持。

数据层的水平扩展

在数据量很大的情况下,数据层(缓存,数据库)涉及数据的水平扩展,将原本存储在一台服务器上的数据(缓存,数据库)水平拆分到不同服务器上去,以达到扩充系统性能的目的。

互联网数据层常见的水平拆分方式有这么几种,以数据库为例:

按照范围水平拆分

每一个数据服务,存储一定范围的数据,上图为例:

这个方案的好处是:

(1)规则简单,service只需判断一下uid范围就能路由到对应的存储服务;

(2)数据均衡性较好;

(3)比较容易扩展,可以随时加一个uid[2kw,3kw]的数据服务;

不足是:

(1)请求的负载不一定均衡,一般来说,新注册的用户会比老用户更活跃,大range的服务请求压力会更大;

按照哈希水平拆分

每一个数据库,存储某个key值hash后的部分数据,上图为例:

这个方案的好处是:

(1)规则简单,service只需对uid进行hash能路由到对应的存储服务;

(2)数据均衡性较好;

(3)请求均匀性较好;

不足是:

(1)不容易扩展,扩展一个数据服务,hash方法改变时候,可能需要进行数据迁移;

这里需要注意的是,通过水平拆分来扩充系统性能,与主从同步读写分离来扩充数据库性能的方式有本质的不同。

通过水平拆分扩展数据库性能:

(1)每个服务器上存储的数据量是总量的1/n,所以单机的性能也会有提升;

(2)n个服务器上的数据没有交集,那个服务器上数据的并集是数据的全集;

(3)数据水平拆分到了n个服务器上,理论上读性能扩充了n倍,写性能也扩充了n倍(其实远不止n倍,因为单机的数据量变为了原来的1/n);

通过主从同步读写分离扩展数据库性能:

(1)每个服务器上存储的数据量是和总量相同;

(2)n个服务器上的数据都一样,都是全集;

(3)理论上读性能扩充了n倍,写仍然是单点,写性能不变;

缓存层的水平拆分和数据库层的水平拆分类似,也是以范围拆分和哈希拆分的方式居多,就不再展开。

五、总结

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。前者垂直扩展可以通过提升单机硬件性能,或者提升单机架构性能,来提高并发性,但单机性能总是有极限的,互联网分布式架构设计高并发终极解决方案还是后者:水平扩展。

互联网分层架构中,各层次水平扩展的实践又有所不同:

(1)反向代理层可以通过“DNS轮询”的方式来进行水平扩展;

(2)站点层可以通过nginx来进行水平扩展;

(3)服务层可以通过服务连接池来进行水平扩展;

(4)数据库可以按照数据范围,或者数据哈希的方式来进行水平扩展;

各层实施水平扩展后,能够通过增加服务器数量的方式来提升系统的性能,做到理论上的性能无限。

简单的就是给服务器安装kvm虚拟化软件,然后每安装一个虚拟系统就是一个vps,每个vps可以有独立的IP要共享IP的话就给映射了端口了kvm是免费的,rhel centos系统自带

复杂的话就给买xen或者vmware的套件了,这个可以让用户自己安装虚拟机,自己设置,还是蛮贵的,不过你真要买了,安装就不用你操心了

2020年7月22日,上海——今日,英国信息科技公司英礴(Improbable)宣布,旗下下一代多人游戏开发技术平台思礴(SpatialOS)虚幻引擎20202版本正式在国内对外发布。该最新版本致力于为开发者提供更强大、更灵活的计算能力,降低多人游戏创新的复杂性,助力开发者更轻松、快捷地打造丰富的多人游戏生态。

AI负载拆分公开测试,突破原生虚幻引擎极限

经过不断的试验与打磨,在SpatialOS20202版本中,AI负载拆分功能正式进入公开测试阶段,面向所有用户开放。

AI负载拆分技术让开发者得以跨越单服务器的限制,获得更大的设计空间,如容纳更多NPC、更加复杂的AI、更多的游戏内系统(如天气)等,同时也帮助提高游戏的整体稳定性。这一技术的成熟让追求复杂多样游戏环境和生态的设计成为可能,如带有AI的大逃杀游戏、PvPvE、更动态的生存类游戏等。

英礴旗下MidwinterEntertainment正在开发的新游戏《Scavengers拾荒者》是一款具有丰富的PvPvE和生存元素的在线团队竞技类射击游戏,玩家会遭遇包括极端天气、瘟疫肆虐、变异猛兽、饥寒交迫、野蛮的外来入侵者以及敌对的玩家团队等各方面的威胁。AI负载拆分功能的使用让其所追求的多样化且人口稠密的游戏环境成为可能,该环境可支持60个玩家,并且在3x3公里的地图中,智能AI与玩家的比例达到5:1。

英礴旗下MidwinterEntertainment正在开发的新游戏《Scavengers拾荒者》

观看工作室采访视频,详细了解SpatialOS为《Scavengers拾荒者》所提供的强大支持。

无缝分区服务器开放预览,探索玩法设计无限可能

SpatialOS虚幻引擎20202中提供无缝分区多服务器架构的预览版本,并已针对2021年下半年及以后上线发行的游戏做好评估准备。

无缝分区多服务器架构示意图

SpatialOS独特的无缝分区多服务器架构能够为开发者提供更多的玩法设计,如更大的世界、更多的实体、更多的玩家、更多的游戏系统等。通过无缝分区,开发者可使用多个游戏服务器将整个游戏世界划分为多个不同区域,玩家可以在各区域之间随意穿越和互动,收获无缝游戏体验。

英礴旗下埃德蒙顿游戏自研工作室在其RPG在线游戏的开发过程中不断对无缝分区服务器功能进行打磨和测试,推动这一功能开发不断完善,助力SpatialOS更好地满足其他工作室需求,帮助其开发更丰富多样的多人游戏。

支持手游开发(预览),跨平台开发更进一竿

SpatialOS20202版本支持开发者团队在iOS和Android平台上开发和测试游戏,并提供相应工作流及配套文档。

SpatialOS的手游开发功能已经和英礴内部自研工作室的游戏进行了深入整合,同时也准备好与外部游戏工作室开展合作。如果您有兴趣使用SpatialOS来创建多平台或移动端优先的游戏,请通过官网联系我们。

有关20202版本的更多详情,请通过SpatialOS中国官网或点击官方文档了解。

关于英礴

英礴(Improbable)是由HermanNarula、RobWhitehead和PeterLipka于2012年在英国伦敦创立的信息科技公司,致力于构建庞大、丰富、恒久的虚拟世界。由英礴研发的SpatialOS(思礴)是一项基于云端的下一代多人游戏开发技术,旨在降低游戏开发全流程的各种门槛风险,推动快速实验创新和高效游戏开发,助力中国游戏开发者实现无限创意,并通过海内外云平台进行全球部署。

英礴自成立以来发展迅速并得到了全球知名投资机构的大力支持。2015年3月,英礴获得来自美国AndreessenHorowitz的2000万美元A轮融资;同年7月获得由中国香港维港投资领投,新加坡淡马锡控股公司等跟投的3000万美元A+轮投资。2017年5月,英礴获得由日本软银集团领投,AndreessenHorowitz、维港投资等跟投的502亿美元B轮融资。2018年7月,英礴获得中国网易公司5000万美元战略投资。

首先分别在两台机器上安装数据库和应用服务器

然后你只要把应用服务器中应用程序的数据库连接地址改为你的数据库服务器的IP地址就可以了,然后在数据库服务器中设置可以远程访问(部分数据库系统有这个要求)

作者 | 核子可乐、晓旭

策划 | 钰莹

1 IBM:剥离托管基础设施部门成为新的公司

根据最新报道,IBM 正着手将自身拆分为两家上市企业。此举无疑是在回应自己多年以来的云技术发展,希望从传统业务中剥离出来,把主要精力集中在利润更为丰厚的云计算领域。

IBM 此次拆分对象为旗下 IT 基础设施服务部门,拆分完成后,该部门将以独立厂商的角度继续为全球 115 个国家和地区的 4600 家客户提供技术支持、完成总额高达 600 亿美元的积压订单,并于 2021 年年底之前正式完成更名。

IBM 公司首席财务官 James Kavanaugh 在采访中表示,新的上市公司将以全球第一大托管基础设施服务提供商的身份启动,这家新公司将拥有 9 万名员工,领导结构计划在未来几个月内确定。IBM 目前的员工总数超过 35 万 2 千名,预计此次剥离与运营变更将带来近 50 亿美元的操作支出。

IBM 现任首席执行官 Arvind Krishna 正是去年以 340 亿美元收购红帽公司的关键策划者,这笔收购也在投资市场上获得广泛认同,帮助公司股价上涨达 7%。IBM 方面表示,预计其今年第三季度收入可达 176 亿美元,调整后每股收益为 258 美元,与华尔街方面的预估大致相符。

Krishna 在一次分析师电话会议上表示,“我们在上世纪九十年代剥离了网络业务,在新世纪的前十年剥离了 PC 业务,并在约 5 年前剥离了半导体业务,这一切都是为了帮助 IBM 拥有始终统一的价值主张。”

在一篇博文中,Krishna 将此次拆分称为 IBM 公司 109 年发展历程中的一场“重大商业模式转变”。

Wedbush Securities 公司分析师 Moshe Katri 评论称,“考虑到自动化与云业务对于市场的快速蚕食,IBM 公司将借此举基本摆脱持续萎缩且利润空间有限的运营范畴,着力强调高增长业务的强劲表现。”

为了弥补软件销售增长放缓与大型机服务器业务明确的季节性需求波动,IBM 方面表示将把注意力集中在开放混合云与 AI 解决方案层面,着力提升这部分占其经常性收入达半数以上的业务。

2 高层大变动、分拆上市:混合云的道路能走通吗?

今年 4 月份, IBM 内部高层发生变动,原 Red Hat CEO Jim Whitehurst 成为 IBM 新任总裁,领导 IBM 战略以及云计算和认知软件业务部门,负责监督推动客户数字化转型的基础技术;Howard Boville 成为 IBM 云业务负责人,此前任职美国银行;IBM 新任 CEO Arvind Krishna 之前是 IBM 云计算和认知软件部门负责人。不难看出,IBM 这次的高层变动情况表明其十分看重混合云业务。

事实上,无论是 Ginni Rometty,还是 Arvind Krishna,都认为混合云是 IBM 的第二个机会。Ginni Rometty 曾表示:“云计算发展已经进入第二时期。到 2020 年,混合云将有 1 万亿美元的市场需求,但至今仍有 80% 的企业数据尚未迁移到云上,究其原因主要就是欠缺了一套一致性和高安全性的云管理机制,这也是 IBM 看好混合云的原因。”

而 Arvind Krishna 为了发展混合云业务,也在上任之后采取了多个举措。首先,点名混合云业务是 IBM 业务的重中之重,并称“现在是时候打造混合云这第四个平台了”;其次,为 Red Hat 布置了新作业;最后,请来了强力外援执掌云业务部门。

Arvind Krishna 上任第一天,给 IBM 全体员工发送了电子邮件,在邮件中,Arvind Krishna 特意强调了混合云业务是整个 IBM 公司的重中之重:

IBM 已经在主机、服务和中间件领域建立了持久的平台,这三大平台继续服务我们的客户。我相信现在是时候打造混合云这第四个平台了。我们的客户将依赖这个必不可少、无处不在的混合云平台来完成本世纪最关键的工作。这是一个比其他平台更持久的平台。

根据市场调研机构 Canalys 公布的 2018 年全球公有云市场数据来看,IBM 落后明显,市场份额不到 4%。很多人认为 IBM 在云业务不仅错失先机,甚至都没有想明白到底应该怎么玩?直到 340 亿美元收购了 Red Hat,IBM 似乎才想明白,混合云或许是弯道超车的机会。

有人总结了目前云计算领域主要玩家对云计算的理解:“亚马逊的云业务致力于满足电商商家的托管需求;微软的云计算路线走的是“软件 + 服务”;谷歌更多强调的是通过云计算对用户提供优质的服务;阿里云计算的价值在于通过移动化与云计算的结合来实现 IT 服务的“在线化”。”

相比之下,IBM 的主营业务是硬件,在云计算的理解方面并不占优势。而收购 Red Hat 则是一招比较妙的棋,Red Hat 在企业级市场的积累,为 IBM 的市场和业务扩展带来了现成的好处,同时也给 IBM 提供了与其它云服务商对抗的核心竞争价值。

分拆过后,由其托管基础部门组成的新公司将继续拥有《财富》100 强中超过 75% 的客户,以及 600 亿美元的积压订单,这家公司未来也将是 IBM 的合作伙伴,并与所有云提供商合作。

未来,IBM 将由一家半数以上销售额来自服务的公司变为半数以上收入来自于混合云和 AI 等解决方案收入的企业,不得不感叹一句:一个 IT 时代走向终结。

参考阅读:

https://wwwinfoqcn/article/QgV4IQfpJ8GwzCjjQiRQ

https://newsroomibmcom/2020-10-08-IBM-To-Accelerate-Hybrid-Cloud-Growth-Strategy-And-Execute-Spin-Off-Of-Market-Leading-Managed-Infrastructure-Services-Unit

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 一般互联网公司 如何进行高并发的架构

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情