首页 > 其他分享 > 网站架构演变

网站架构演变

时间:2023-02-08 20:02:13浏览次数:31  
标签:架构 演变 网站 数据库 集群 所示 服务器 如图

1.1 问题

学习从单机架构到集群架构的演变之路:

  • 单机版LNMP
  • 独立数据库服务器
  • Web服务器集群与Session保持
  • 动静分离、数据库集群
  • 各种缓存服务器
  • 业务模型

1.2 步骤

此案例主要是学习网站架构演变的过程,以拓扑图和理论为主,具体实现还需要结合具体的软件。

步骤一:单机版LNMP

单机版网站,拓扑如图-1所示。

 网站架构演变_数据库

用户量少时使用,简单、成本低、存在单点故障。

​步骤二:独立数据库服务器

独立数据库服务器是将网站静态文件、代码文件等资料与数据库分离的架构,当用户量增加时单机的处理能力有限,PHP或JAVA代码的执行需要消耗大量CPU资源,数据库的增删改查需要调用大量的内存资源,将两者分离可以减轻服务器的压力,其拓扑结构如图-2所示。

 网站架构演变_Web_02

Web服务器和数据库服务器的压力都可以得到有效改善,访问量有所增加。但是服务器依然存在单点故障问题。

​步骤三:Web服务器集群与Session保持

我们可以通过Nginx、Haproxy代理服务器实现Web负载均衡集群,也可以使用LVS调度器实现Web负载均衡集群。部署完Web集群后还需要考虑如何进行Session会话保持,方法很多,如:根据源IP保持,代理服务器重写Cookie信息,共享文件系统保存session,使用数据库共享session等等。

该架构拓扑如图-3所示。

 网站架构演变_Web_03

但是如果只有一台调度器依然会导致单点故障的问题,因此还需要使用Keepalived或Heartbeat之类的软件进行高可用配置,如图-4所示。

 网站架构演变_数据库_04

对于网站内容而言可以分离为动态页面和静态页面,静态页面就需要数据文件,动态页面则需要CPU解析代码,需要消耗大量的CPU资源,因此可以将静态和动态分离为两组服务器,动态页面有脚本代码组成,是一种基于网页的应用程序,因此这一组服务器也称为应用服务器,其架构如图-5所示。

 网站架构演变_服务器_05

步骤四:动静分离、数据库集群

随着服务器的增加,虽然性能与并发量得到了明显的提升,但是数据的一致性、管理的便利性成为了新的问题,因此就需要增加统一的存储服务器,实现数据的同步一致,可以使用NFS,GlusterFS、Ceph等软件实现该功能,其架构如图-6所示。

 网站架构演变_数据库_06

此时所有应用服务器都连接一台数据库服务器进行读写操作,而且后期随着数据库中的数据不断增加,会导致数据库成为整个网站的瓶颈!这就需要我们对数据进行分库分表,创建数据库主从或者数据库集群,实现读写分离,其拓扑如图-7所示。

 网站架构演变_数据库_07

步骤五:缓存服务器与业务模型

对于静态数据我们可以通过varnish、squid或者nginx进行缓存,将数据缓存到距离用户更近的位置,构建CDN(内容分发网络)架构。

对于传统的SQL数据库而言,我们也可以通过增加NoSQL数据库,实现数据缓存的功能,提升数据库的访问速度。

最后,基于前面的架构,我们还可以将网站按照公司的业务进行分离,每个业务都可以是一个独立的集群,如图-8所示。

 网站架构演变_服务器_08

标签:架构,演变,网站,数据库,集群,所示,服务器,如图
From: https://blog.51cto.com/u_11806823/6044746

相关文章

  • 分布式缓存上云手册,架构师人手一份,赶紧收藏!
    本文我们将探讨云上的分布式缓存,以及为什么它能够适用于高数据量和高负载的环境。分布式缓存是基于云的应用程序的一个重要方面,无论是企业内部、公共或混合云环境。它促进了......
  • 阿里IM技术分享(十):深度揭密钉钉后端架构的单元化演进之路
    本文由钉钉技术专家啸台、万泓分享,为了获得更好的阅读效果,本文已对内容进行少修订和重新排版。1、引言钉钉后端架构的单元化工作从2018年开始到今年,已经是第五个年头了。......
  • 微服务架构
    微服务架构阅读目录l需求分析l系统分析l存储及缓存架构l逻辑架构l服务架构l关于分布式事务l开发架构互联网保险O2O平台微服务架构设计​关于架......
  • 租用国外服务器做网站怎么选?
        近年来,随着网站建设的门槛越来越低,国外服务器网站免备案,配置高,适合外贸建站等优势,而受到国内各大用户的欢迎。越来越多的企业开始进入到海外市场中,而在租用国外......
  • 记录一起因为阿里云waf防火墙造成公司网站出现405 Method Not Allowed
    公司商城网站是客户访问请求会先到阿里云的CDN在到阿里云的waf防火墙,最后到源站服务器公司商城网站访问刷新5-6次就会出现 405MethodNotAllowed从字面上的意思理解,很......
  • Serverless开源架构方案——Knative
    2014年11月,AWS发布了新产品Lambda,开启了全新的Serverless时代。按照当时的描述,Lambda是一种计算服务,它按需运行用户的代码,用户无须关注底层的计算资源。继AWSLambda之后,很......
  • Python django 门户网站(课设、学习、毕设)
     Pythondjango门户网站pythondjango官网网站pythondjango门户网站pythondjango公司官网源码后端:pythondjango数据库:MySQL前端:html cssjs等涉及功能:......
  • python django 个人图片网站(课设、学习、毕设)
    pythondjango个人图片网站pythondjango图片管理展示系统pythondjango图片管理系统pythondjango图片展示网站 后端:pythondjango数据库:MySQL5.7前端:html ......
  • 网站内链是什么?
    网站内链,指网站的各级导航、锚文本和由图片、图标、视频等媒体附带的站内链接,狭义上仅指在网站内部指向其它内部页面的锚文本。网站内链可以使用户轻松实现站内的页面跳转。......
  • 单线程架构的Redis如此之快的 4 个原因
    前言作为内存中数据存储,Redis以其速度和性能着称,通常被用作大多数后端服务的缓存解决方案。但是,在内部,Redis采用单线程架构。为什么单线程设计依然会有这么高的性能?如......