前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大型网站的自强之路

大型网站的自强之路

作者头像
JackieZheng
发布2018-01-16 10:47:01
7280
发布2018-01-16 10:47:01
举报
文章被收录于专栏:JackieZhengJackieZheng

1、大型网站的自强之路

当年马云筹办阿里巴巴的时候并没有说我要做个大型网站,搞个双11,成交额做到千亿级别;马化腾也没有说以后我要做个通讯工具,让13亿乃至更多用户都成为我们的用户……我们现如今看到的各个大型网站或产品都是一步步踏踏实实走过来的,在各种坑和故障中成长起来的。

1.1、一台电脑就是服务器

做过课程设计或者毕业设计的计算机相关的同学都应该有过搭建项目的经验。画一堆界面,结合js和后台实现数据的展现,当然还要有数据来源——数据库,启动一个容器比如tomcat,那么我们就可以在本机上访问我们的网站了。想必没有比这还简单的网站了吧,自己的电脑就充当了服务器的角色,应用和数据库都部署在了自己的电脑上。

1.2、我们需要丰富网站的功能

随着一个单机网站的不断完善,用户的增长,我们不再也不能只是一个完成缴费或者完成选课的单一功能的网站应用。我们需要从各个维度把这些应用分离开来,比如一个电商网站,我们有用户、商品和交易三个基本模块。 用户

  • 用户注册
  • 用户管理

商品

  • 商品展示
  • 商品管理

交易

  • 订单系统
  • 交易管理

随着应用的分块,数据库中表的划分也会相应变化。大概的结构图如下

1.3、应用数据库分离

不管是2.1中的电脑即服务器,还是2.2中的应用和DB放在同一服务器上,这两种都没有将应用和DB做分离。随着我们应用网站的访问量逐渐增多,对于服务器的压力也增大了,我们需要考虑分离应用和数据库以保证应用更加稳定。 相比2.2,我们只是将应用模块和DB模块部署在两台服务器上,这样各自的服务出现问题不会影响对应的模块,同时也减轻了原来一台服务器的压力。

1.4激增的访问让应用服务器走向集群

当应用服务器承受的压力越来越大时,我们考虑将应用服务器走向集群化。大概结构如下:

注意 因为这里使用了多个应用服务器,Session就不再像单应用服务器那样只有一个可选,这时候对于多个应用服务器,可能会出现这次的请求是被A应用服务处理,但是下一次就会被B应用服务器处理,应用Http是无状态,所以需要借助Session实现有状态,但是显然这里Session无法完成这个“艰巨”的任务。 针对这个问题,解决方法较多。比如可以在请求和服务器之间加一个负载均衡器,让负载均衡器维系请求和服务器之间的对应关系,如果发现是张三发来的请求那就扔到服务器A上处理,如果是李四的就扔到服务器B上处理。 还有一种处理方法是添加一个同步操作,在两个服务器之间完成Session同步,这样不管服务器A还是B都会有全集的Session集合了,那么谁处理就显得不重要了。

1.5、数据库扛不住了,读写分离

这个时候我们不能再把自己的应用网站成为小网站了,我们的数据量和访问量空前的增长以至于数据库有些hold不住了。所以我们需要将数据库进行读写分离了,毕竟我们一般的网站应用读数据库占得比重比较多。大概的结构如下:

从图中可以看出,用于读的数据库可以直接被应用读取,同时它与主库之间需要及时同步,当应用需要向主库写入数据时,则需要将写入的数据通过到DB Read数据库中,保证数据的实时性和准确性。 读写分离还有更多的延伸,包括使用缓存以及数据库的垂直和水平拆分等,后面再说吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、大型网站的自强之路
    • 1.1、一台电脑就是服务器
      • 1.2、我们需要丰富网站的功能
        • 1.3、应用数据库分离
          • 1.4激增的访问让应用服务器走向集群
            • 1.5、数据库扛不住了,读写分离
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档