网站系统的架构设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

网站系统的架构设计

焦花花

摘要:一个网站系统在需求确定后,就可以开始架构设计了。架构设计不同于编写代码,需要遵循严格的语法和编程规范。它没有规范可遵循,存在即合理,适合网站系统开发和运行的架构就是最合理的系统架构。

关键词:网站;系统;架构;部署

对于一网站系统,根据数据量或者逻辑的复杂性会有不同的架构上的设计。也可以根据用户量的多少来对不同系统采取不同的设计。对于一个系统,根据用户的使用情况,可以分为几个常见的用户级别系统。分别是万级用户的系统、十万级的用户系统和百万级别的用户系统。这三种级别的用户量在系统的设计和应用的部署上会有不同的方式。接下来,我们分别介绍这三种级别系统在设计上和部署方式上的不同。

1一万用户量的系统

用户量不超过一万的系统应该是最简单的系统了,对于这种简单的系统应用程序的部署包、文件的存放、还有数据的安装都可以放在一台服务器上即可,不会影响系统的功能使用和性能。

在应用程序上,基本上使用一套java的SSM/SSH框架就可以完成相应的业务功能了。一些复杂的统计需要sql语句即可。然后在数据库连接池的配置上修改下参数。因为用户量使用的少,只要能实现需求的功能。用户量较少一般产生的数据也比较少。因此数据的存放和应用可以放在同一个服务器上。

2十万用户网站架构

用户使用量不超过十万的系统结构,用户量较多,一般会产生较多的数据。如果数据存放和应用公用一台服务器,随着数据量的增多,会占用服务器的更多的资源。因此需要将部署应用程序的服务器、存放文件的服务器、存放数据的服务器独立出来。

实现应用程序和数据的分离,不仅在逻辑上的分离,在物理上也实现了分离。

2.1服务器的合理选择

对于应用程序的服务器,主要用来处理业务逻辑,对硬件的要求是需要好点的cpu。对于存储文件的服务器,需要较大的硬盘,对于存放数据的数据库服务器,它的任务是做了大量的数据缓存和对磁盘进行检索,因此需要硬盘读写速度比较快的,另外需要大的内存。

2.2程序的设计与优化

在应用程序的设计上,主要对业务中的数据的批量处理和统计上的改进。Hibernate框架写的速度每分钟两千条,如果需要处理10w条数据,使用java语言,提交批处理的sql语句,每秒可以处理5万条数据。Oracle数据库每秒可以修改5w条数据的状态。简单的业务可以用批处理sql语句来解决问题,复杂的需要批量操作的业务,就无法通过简单的批处理的sql来解决。需要使用消息队列机制,它是解决批量数据、大数据的通用方案。MQ实现了批量数据处理与业务的分离,实现对程序的解耦。

Tomcat支持的线程数是200到300之间,十万级用户,如果每个用户一天请求50次,按照十小时算的话,每秒需要请求服务数是139次,如果峰值翻倍的话,也在tomcat的最大并发数承受范围内。因此应用服务器选用tomcat即可。

3百万用户网站架构

现实中绝大多数的系统的用户量是达不到百万级用户的,这种级别的系统业务是比较复杂的,使用分布式技术、缓存技术和负载均衡技术等。因此系统架构也比较复杂些。

3.1应用服务器的设计

负载均衡服务器统一管理着系统的入口和出口。百万级别用户的系统,负载均衡服务器选用nginx。它可以最高支持5万的并发数。虽然是百万级别的用户数,但在某一时刻的并发量可能就是几万。因此,一台nginx完全可以支撑百万级别用户的负载均衡。相比于apache和tomcat服务器,ngnix做负载服务器是较好的选择。

应用服务器上主要部署的是应用程序、本地的一些数据缓存、还有数据的访问模块功能。应用程序可选用tomcat即可,因为应用程序可做集群,保持与其他模块的耦合性。本地的缓存可以存储一些数据量不大的数据,但经常需要访问当的数据即可,像session这种,因为百万级别的用户量,虽然每一个的session占用空间不大,但是百万个seeeion就需要很大的空间,因此seesion建议存储在远程分布式缓存中,目前常用的远程分布式缓存有Redis和Memcached。Redis可以支持的数据结构更多些,而memchached只是支持key-value的结构。而且redis可以处理简单的业务逻辑,做消息队列代理等。因此远程缓存服务器选redis。

数据库访问的模块,因为数据量比较大,而且传统的关系型数据库对表数据是行级锁的,即读一张表或写一张表数据,会形成阻塞的。因此建议,数据库做主从备份,将数据的读和写分开。Spring框架和中间件都可以做对数据库的读写分离。

3.2文件服务器

常用的存储文件的有HDFS和FDHS,这两种在网上的资料都比较多,是比较成熟的存储系统了。关于文件系统的使用基本上都是一样的,用户将文件上传到应用服务器上,经过程序的处理,将文件存在文件系上,文件系统给应用服务器回一个存储的路径。应

您可能关注的文档

文档评论(0)

知念 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档