分享
腾虎网络
2022-10-25
网站系统的部署架构到时是什么??

        提到大型网站,总会听到分布式、集群、K8S(kubernetes)、Docker、虚机、CDN、负载均衡等概念


        其实这些都是大型网站部署相关的概念,只是过多的概念让大型网站的部署变得很难理解。这里小编和大家聊一聊网站系统的部署架构。以主流的B/S架构网站为例,大型网站的部署一般分为4个部分


        1、前端部分

        2、后端部分

        3、云计算部分

        4、存储部分与第三方云计算服务部分


         前端部分

        单个前端服务器一般包含2个部分,Web服务器软件、网页资源文件


        前端部分

        Web服务器软件是Nginx、Apache等软件。其作用是在接收到请求后,在磁盘上找到对应的网页资源文件,并将其发送给请求端,网页资源文件指的是网页的静态资源文件,包括HTML文件、CSS文件、JavaScrіpt文件、图片文件、视频文件等


        其中,一部分网页资源文件可能会存在单独的文件服务当中(如上传的头像、视频等)。对于前端服务器集群而言,前面需要增加负载均衡以分发请求。负载均衡可以是自己搭建的服务器(Nginx等)或者是购买云服务。在负载均衡前面需要增加CDN服务(缓存网页资源文件),增加CDN是为了加速网页资源文件的下载速度


         后端部分

        单个后端服务器一般包含2个部分,Web应用服务器软件、后端应用程序


        后端部分

        Web应用服务器软件根据不同的开发语言有所区别,Java的话一般是Tomcat 或者Jetty。其作用是接收到请求后,调用相对应的后端应用程序,并把后端应用程序处理的结果返回请求端。后端应用程序是真正处理请求的程序,java编写的话一般是以.war结尾的文件。后端应用程序在网站系统中处于“司令塔”的位置


        会调用很多第三方软件,如数据库、非关系型数据库(如Redis)、消息队列、第三方云计算服务等。而且后端应用程序还会操作共享文件,如上传头像、视频等。对于后端服务器集群而言,前面需要增加负载均衡以分发请求,负载均衡可以与前端服务共用


        云计算部分

        由于没有比较通用且流行的框架,其结构因具体实现方式而异。


        不过云计算部分的工作原理一般是,后端应用程序向消息队列下发任务,云计算服务软件监视消息队列并执行任务。云计算服务集群一般是监视同一个消息队列,以抢占的方式获取任务的,所以不需要考虑分发任务的问题。当然,云计算服务根据具体的功能,也可能会使用第三方软件(如数据库等)或者操作共享文件


        后续我们将会详细讨论云计算服务部分的架构


         存储部分与第三方云计算服务部分


        存储部分包括数据库、文件服务器、非关系型数据库等


        储存部分与第三方云计算服务部分,这些软件都会提供自己的集群方式。第三方云计算服务部分一般是通过API调用的


        总结

        在决定使用某个服务之前,除了明确功能点以外,还需要明确其是否能承接当前系统的请求量。总体的部署架构,根据实际项目,可能会有一些细节上的调整。另外,根据项目规模,图中的每个部分或软件都可能部署多个。