大型网站网络结构过渡与软件架构的黄金搭档

http://blog.csdn.net/biezhihua/article/details/41621083


前言

  你可能常常听说,F5、集群、网站架构等名词,却又不知道何为网站架构,更不知一个大型高并发网站的演变过程。
  如果你是个JavaEE初级程序员,想明白除了软件开发,你还可以做什么。
  ---那么,这篇文章可以让你领略一二。

了解数据怎么变大,网站由小向大过渡结构(通过不断硬件的扩充实现大的负载)

1) 静态网站

背景:最开始,我们想做一个小网站,一个静态网页,把自己的个人简历放上去。
需求:需要一个网络空间(在服务器上,这个服务器很多用户一起使用)
结构图
说明:为了保证服务器数据的安全性,个人电脑和手机不能够直接访问服务器。要通过防火墙才可以。

2) 交互网站,动态BLOG

背景:通过在静态网站上分享一些内容:博客、心情之类的。在QQ、微信上宣传,大家对博客很感兴趣,用户访问量增多,并且想写一下回馈。这样就需要升级,做一个动态的网站。
怎么办:使用JSP/ASP/PHP等动态语言写服务端代码。
结果:升级以后,满足了浏览者留言、回馈的需求。

背景2:随着人数增多,访问增多,压力增大,出现了留言板刷不出来的情况,妨碍了用户体验。这时候,与别人合用的服务器已经无法负载,需要升级。
怎么办2:更换服务器,租用一个独立的服务器。
结果2:由于更换了独立的服务器,用自己腰包的钱,便开始想着如何能够盈利一些,让收支平衡,便开始为应用提供一些小功能:上传、下载等。由于有了独立的服务器,可以支持我们的负载。

3) 业务应用,数据库服务器和应用服务器分离

背景:但是好景不长,大家对我的网站很有兴趣,上传下载分享一些东西。导致,访问的人数又变多了。
怎么办:有了业务应用后,业务服务器和数据库服务器分离。
结构图
结果:由于业务服务器和数据库服务器分离,性能提高。可以满足日常秒级百人并发(日访问至少千次以上了),相当不错了。

4) 小的电脑外设零件(小商城,内存吃紧,页面缓存html)

背景:随着网站扩展,不满足了。想办一些实体,卖一些东西,优盘、硬盘等,做一个小小商城。增加了业务:购买。这样就需要购物车,需要保持链接持续,要用Session保持会话,导致内存吃紧。
怎么办:而且加内存很贵,需要考虑成本。既然内存吃紧,就在内存上做做文章。购物车中的货物,老是动态查询,没有太大意义。图片之类的可以先做好等。可以使用页面缓存技术来解决,将静态内容与动态内容相分离。
结构图
结果:增加了页面缓存,静态数据不再从数据库获取,直接从业务服务器获取。对数据库访问压力变小,对同时在线支持的人数变多了。

5) 中型商城(用户量,加前置机,加高性能的web服务器)

背景:小小商城办的好,固定粉丝(用户)变多,买的东西越来越多,货物越来越多。客户开始抱怨,货物看不到,页面半天出不来(访问请求过多)。
怎么办:由于是中型商城,有钱了,扩充一台Web服务器。这时,我们有两台服务器,那我们的防火墙连谁? 可以再增加一台前置机(只有中转请求的作用)。扩展了一台应用服务器,相当于可访问连接翻倍了(以前可以100人,现在可以200人)。两台web服务器,都去访问一台数据库。
结构图
结果:这样,问题解决,可以稳定支持在线200人运行。

6) 向大型商城发展(用户量,增加F5,负载均衡,数据库读写分离,集群)

背景:现在有野心了,想做大型网站(京东、淘宝)。并发两百人访问,支持在线500人访问。每日订货3000人次。而且,经过一年的积累,也有钱了,可以买几台服务器。
怎么办:进一步扩展硬件。之前我们说增加web服务器,可以增加支撑的在线人数(每个服务器支撑的人数是大概固定的),只能通过继续扩展服务器,增加可以支撑的在线人数。集群出现(几十台、上百台)。而且,随着服务器增多,前置机已经无法支撑负载均衡了。为了解决,增加一台F5(专业转发,一台20W,很小很贵),性能很强,能连几十台上百台,轻松转发链接。这样,多台Web服务器连接一个数据库服务器。
结构图
结果:F5解决了Web服务器集群问题。但是用户反馈,响应照样很慢。照样页面出不来,那么问题出在哪里了?原来问题出在服务器了,所有Web服务器都读写一个数据库(读写竞争)。这时候瓶颈变成了数据库服务器。

怎么办2:再加一台数据库服务器,这个时候,web服务器,到底连接那一台数据库服务器? 数据库数据不同,造成数据丢失。这时,需要同步数据库。在读写时,数据库同步依旧会耗费时间,会造成读写冲突,读的人把写的人时间浪费了。为了避免读写冲突,使数据库读写分离。
**结构图2
结果2**:这样,日常浏览的,走读服务器。购买的走写服务器。但是问题又来了,F5是硬件,很笨,只懂得转发,不会处理业务。这时,需要前置机处理简单的业务判断。

怎么办3:增加前置机,处理简单的读、写业务判断。
结构图3
结果3:不错了,系统可以支撑大量的访问,形成了初具规模的大型商城。

大型系统解决方案黄金搭档

1) 通过硬件的扩充,解决了大并发、大负载量的问题。但是,成本是非常高的。

2) 有了结构,具体的结构中,用的核心技术是什么?

  1. 前置机(Web Server)

    用处:放置静态资源(图片、文件、css、js)。好处:不用再从后台取,效率极高!

    技术:Apache、nginx。使用nginx的网站:迅雷、网易、爱奇艺、当当、腾讯等。

  2. Web Server(中间件,响应动态数据)

    第一级(开源、免费): Tomcat(稳定支持100人秒级并发。最高150。配置不好50人就会死)、Resin、glassesfish(可以实现热部署)。

    第二级(收费):JBoss、

    第三级(收费,很贵) :WebLogic(100万左右)、WebSpare。业界最强悍的。可以稳定支撑200人秒级并发。一台服务器最多200人秒级并发。可以使用虚拟机技术,扩充虚拟服务器,扩充并发量。如果集群,需要大量投入资金。

  3. 数据库

    Mysql(免费)

    Oracle(收费) :单台性能极高。卖用户数,少则几十万,多则上百万。如果集群,需要大量投入资金。

  4. 高效系统黄金搭档nginx(前置分发) + tomcat(中间件) + mysql(数据库) + mybatis(技术) + spring(技术)

总结

小小分享,希望对大家有所帮助。转发请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值