基于.NET的互联网服务平台架构.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于.NET的互联网服务平台架构.NET技术+25台服务器怎样支撑世界第54大网站?架构文摘微信号 ArchDigest功能介绍 每天一篇架构领域重磅好文,涉及一线互联网公司的互联网应用架构、大数据、机器学习等各个热门领域。StackOverflow是一个IT技术问答网站,用户可以在网站上提交和回答问题。当下的StackOverflow已拥有400万个用户,4000万个回答,月PV5.6亿,世界排行第54。然而值得关注的是,支撑他们网站的全部服务器只有25台,并且都保持着非常低的资源使用率,这是一场高有效性、负载均衡、缓存、数据库、搜索及高效代码上的较量。本文总结了StackOverflow的成功原因。意料之中,也是意料之外,Stack Overflow仍然重度使用着微软的产品。他们认为既然微软的基础设施可以满足需求,又足够便宜,那么没有什么理由去做根本上的改变。而在需要的地方,他们同样使用了Linux。究其根本,一切都是为了性能。另一个值得关注的地方是,Stack Overflow仍然使用着纵向扩展策略,没有使用云。他们使用了384GB的内存和2TB的SSD来支撑SQL ? ?Servers,如果使用AWS的话,花费可想而知。没有使用云的另一个原因是Stack Overflow认为云会一定程度上的降低性能,同时也会给优化和排查系统问题增加难度。此外,他们的架构也并不需要横向扩展。峰值期间是横向扩展的杀手级应用场景,然而他们有着丰富的系统调整经验去应对。该公司仍然坚持着Jeff ? ?Atwood的名言——硬件永远比程序员便宜。Marco Ceccon曾提到,在谈及系统时,有一件事情必须首先弄明白——需要解决问题的类型。首先,从简单方面着手,StackExchange究竟是用来做什么的——首先是一些主题,然后围绕这些主题建立社区,最后就形成了这个令人敬佩的问答网站。其次则是规模相关。StackExchange在飞速增长,需要处理大量的数据传输,那么这些都是如何完成的,特别是只使用了25台服务器,下面一起追根揭底:状态StackExchange拥有110个站点,以每个月3到4个的速度增长。400万用户800万问题4000万答案世界排名54位每年增长100%月PV 5.6亿万大多数工作日期间峰值为2600到3000请求每秒,作为一个编程相关网站,一般情况下工作日的请求都会高于周末25台服务器SSD中储存了2TB的SQL数据每个web server都配置了2个320G的SSD,使用RAID 1每个ElasticSearch主机都配备了300GB的机械硬盘,同时也使用了SSDStack Overflow的读写比是40:60DB Server的平均CPU利用率是10%11个web server,使用IIS2个负载均衡器,1个活跃,使用HAProxy4个活跃的数据库节点,使用MS SQL3台实现了tag engine的应用程序服务器,所有搜索都通过tag3台服务器通过ElasticSearch做搜索2台使用了Redis的服务器支撑分布式缓存和消息2台Networks(Nexus 5596 + Fabric Extenders)2 Cisco 5525-X ASAs?2 Cisco 3945 Routers主要服务Stack Exchange API的2个只读SQL ServersVM用于部署、域控制器、监控、运维数据库等场合平台ElasticSearchRedisHAProxyMS SQLOpserverTeamCityJil——Fast .NET JSON Serializer,建立在Sigil之上Dapper——微型的ORMUIUI拥有一个信息收件箱,用于新徽章获得、用户发送信息、重大事件发生时的信息收取,使用WebSockets实现,并通过Redis支撑。搜索箱通过 ElasticSearch 实现,使用了一个REST接口。因为用户提出问题的频率很高,因此很难显示最新问题,每秒都会有新的问题产生,从而这里需要开发一个关注用户行为模式的算法,只给用户显示感兴趣的问题。它使用了基于Tag的复杂查询,这也是开发独立Tag ? ? ? ? ? ?Engine的原因。服务器端模板用于生成页面。服务器25台服务器并没有满载,CPU使用率并不高,单计算SO(Stack Overflow)只需要5台服务器。数据库服务器资源利用率在10%左右,除下执行备份时。为什么会这么低?因为数据库服务器足足拥有384GB内存,同时web server的CPU利用率也只有10%-15%。纵向扩展还没有遇到瓶颈。通常情况下,如此流量使用横向扩展大约需要100到300台服务器。简单的系统。基于.Net,只用了9个项目,其他系统可能需要100个。之所以使用这么少系统是为

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档