`
pujing
  • 浏览: 43194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转2007)思考高并发高负载网站的系统架构

阅读更多
下面是我10月中旬的想法,经过和小黑的讨论,现在想法有些变化。

如今百家@*店的网站架构已经在超负荷工作了。服务器经常达到100%的使用率。主要是数据库占用了大量的CPU资源。这样的系统,根本无法跟上网站的发展。
所以,我针对我们网站,考虑了一些关于网站流量分流的方法。
1,看了一下别人的文章,大部分都说,现在的网站瓶颈在于数据库。所以,我们这里放在第一条。我们设计的网站要求用户数量要达到1亿。(目前淘宝用户近2000万,腾讯用户近10亿,活跃用户1亿多)。当然,我们的设计要多考虑一些,所以,就定位在淘宝的用户数和腾讯的用户数之间。
    用户名列表单独建立数据库,以便随时将此数据库独立出去单独建服务器。用户登录的时候,数据库要从1亿记录中查找数据,即使使用主索引,也要将近1秒时间(在SQLSERVER中,使用like查找20万条数据,就需要大约2秒种,这里是按照精确匹配以及主索引联合的方式查找)。所以,我们要将用户表分表。以26个字母为分表顺序,中文开头的用户名一张表,数字开头的用户名一张表。这样就有28张表,平均下来,一张表300万数据,最多的一张表估计大约1000万数据。然后,以用户名为主索引,SQLSERVER数据库应该可以应付过来了。
    除了用户表单独建立数据库以外,还要准备大城市大约需要100万左右的商品数据,500万左右的帖子(目前杭州网论坛有超过30万主题贴,600万回复贴),所以,现将商品数据存放在一个独立的数据库中,论坛帖子也存放在一个独立的数据库中,商品数据按城市分表,论坛帖子也安城市分,分别是主题贴一张表,回复贴一张表。
    商店数量(淘宝目前有约60万活跃商店)我们网站应为不释放商店,所以需要更多的表存储该数据,目前无法确定,约为1000万家商店。保险期间,也独立建一个数据库,到时候可以和其他小数据库同用一个服务器。
    商店对应的商店分类,以及友情链接,由于数量要预定至少10倍于商店数量,所以也要分别单独建立数据库,并按照用户名分表。
    网站总设置,以及城市列表,版主信息等,这些可以生成静态内容的单独建立一个数据库。城市内商品分类需要单独建立一个数据库。并按照城市分表。
    其他内容同理。到这里为止,理论上解决了数据库的瓶颈问题。
    2,尽可能生成静态HTML页面。首页生成HTML页面,城市首页生成HTML页面,所有商品页面生成HTML页面,帖子第一页(前10篇)也生成HTML页面。如果一个主题贴超过1页,可以点击“更多”查看。这样可以节省服务器资源。生成页面的时候,服务器会占用大量CPU资源。所以,此功能要单独放置在一个独立的服务器中,并在该服务器上建立一个缓存队列数据库,用户在提交表单的时候,将数据保存在缓存队列数据库中,等待服务器的处理。服务器按照发表时间顺序(主索引)处理这些内容。将生成的HTML商品页面放在一个文件夹内(可随时增设服务器),上传图片和处理图片,存放图片在另一个文件夹内(图片最消耗IIS资源,以后一定要增设图片服务器)。并将处理好的内容存入主数据库中,并在缓存队列数据库中删除处理好的记录。这2块是占用CPU的大头,要随时准备移除主WEB服务器。
    3,使用缓存。有些网页,像首页,可以学习百度首页,缓存24小时。
    4,读取和写入数据库分开。用2个完全一样的数据库,一个专门用来写入,一个用来读取,隔断时间将新加入的数据从写入数据库拷贝到读取数据库,这样可以减少数据库的符合。这个方法听说很多网站都采用的。
    5,在北方,教育网等特殊网络做镜像服务器;
    6,使用负载均衡技术。由特殊的服务商提供方案。
分享到:
评论

相关推荐

    非常全面的高性能高并发服务器架构解决方案

    本文将从高性能高并发服务器架构的优化心得、架构设计问题、负载均衡技术、开源平台的高并发集群思考等多方面详细介绍高性能高并发服务器架构的解决方案。 一、高性能高并发服务器架构的优化心得 高性能高并发...

    高性能高并发服务器架构

    ### 高性能高并发服务器架构的关键知识点 #### 1. 高性能高并发服务器架构概述 - **背景**: 在互联网迅速发展的背景下,越来越多的网站面临着大量...希望这些信息能够帮助读者更好地理解和实施高并发网站的架构设计。

    网站架构及高性能并发服务器设计

     说说大型高并发高负载网站的系统架构 28 好的案例:  eBay 的数据库分布扩展架构 68  从LiveJournal后台发展看大规模网站性能优化方法 70  中国顶级门户网站架构分析1 116   中国顶级门户网站架构分析 ...

    高性能高并发服务器架构.pdf

    高并发高负载网站的系统架构设计 - **系统分层设计**: 通常包括前端展示层、业务逻辑层、数据访问层等多个层次。 - **模块化设计**: 将系统划分为多个功能模块,每个模块负责一部分业务逻辑。 - **异步处理**: 利用...

    高性能高并发服务器架构大全

     思考高并发高负载网站的系统架构 113  "我在SOHU这几年做的一些门户级别的程序系统(C/C++开发)" 115  中国顶级门户网站架构分析1 116  中国顶级门户网站架构分析 2 118  服务器的大用户量的承载方案 ...

    高并发web架构

    2.1 一些思考................................................................................................................................................................19 2.2 HTTP重定向..............

    高并发直播系统服务端架构设计与思考.pdf

    在构建高并发直播系统服务端架构时,设计者必须面对一系列挑战,包括如何处理海量用户同时在线、保证视频流的稳定传输、优化延迟以及确保服务质量。以下是对这一主题的详细探讨: 1. **负载均衡**:为了应对大量...

    工商银行IT架构转型思考.docx

    - **互联网营销的压力:** 在线营销活动(如秒杀、抢购)等带来的高并发访问量对银行信息系统提出了更高的要求。 - **网络安全威胁:** APT(高级持续性威胁)等新型网络攻击方式的出现,要求银行信息系统必须从被动...

    网站架构 大规模网站 ppt

    1. 高并发:大规模网站需要处理海量用户同时访问,因此架构必须支持高并发处理。 2. 数据量大:大量用户会产生大量数据,需要有效的数据存储和检索策略。 3. 分布式:通常采用分布式系统来分摊负载,提高可用性和...

    系统架构设计-如何设计架构

    1. **电子商务系统**:对于处理高并发请求的全球性电商平台,分层架构尤其重要。表示层采用HTML技术,提供用户友好的界面;业务逻辑层负责订单处理和库存管理;数据访问层与数据库进行交互。此外,可能还需要加入...

    2011年下半年 系统架构设计师 试题及答案详解.rar

    例如,如何通过负载均衡提高系统的并发处理能力,如何设计数据库以满足大数据量的存储和查询需求,以及如何构建一个安全的网络环境等。 三、论文 论文部分要求考生具备独立思考和表达观点的能力。可能的论文主题...

    2017年下半年 系统架构设计师 试题及答案详解.rar

    例如,面对高并发的互联网服务,如何选择合适的缓存策略和负载均衡技术;在大数据处理中,如何利用Hadoop或Spark进行数据存储和计算;在微服务架构中,如何划分服务边界,实现服务间的通信和治理。这些案例分析有助...

    携程第四代架构之软负载SLB实践之路.pdf

    设计一个业务开发人员可以使用的软负载系统,关键在于降低知识壁垒,站在开发人员的视角思考。携程提出了一种中间模型——Group,Group可以看作是应用在SLB上的投影。所有对SLB的操作都被抽象为对Group模型的操作,...

    滴滴出行高并发高性能的分布式架构设计之道

    然而,构建一个能够有效应对高并发和高性能的分布式架构并非易事,它需要解决以下几个核心挑战: 1. **容错性**:分布式环境中,由于硬件故障、网络延迟或人为错误,错误是不可避免的。设计时应考虑到系统的容错...

    美团技术沙龙第38期-旅游度假预订系统架构演进实践.pdf

    - 大规模并发访问:节假日高峰期时,系统的并发访问量激增,对系统的负载均衡能力和处理能力提出了更高要求。 - 数据一致性问题:多模块间的协同工作导致了数据一致性维护的复杂性增加。 - **解决方案**: - ...

    从大型电商架构演进看互联网高可用架构设计——内训方案.pdf

    - 优点:能高效处理高并发事件。 - 缺点:设计复杂,调试困难。 - **服务网格架构**: - 优点:增强了服务间的通信安全性。 - 缺点:增加了一定程度的技术债务。 **微服务架构中解决的问题和遇到的痛点** - ...

    大型项目架构演进过程及思考的点

    - 当单台服务器无法满足高并发需求时,引入负载均衡器进行流量分发。 - 使用负载均衡策略(如轮询、权重分配、散列哈希等)实现服务器集群的构建。 #### 四、思考点分析 1. **缓存的应用场景**: - **本地缓存*...

Global site tag (gtag.js) - Google Analytics