网站框架演变(1)

WEB服务框架升级

一. 项目描述

随着公司业务的逐渐增大,lnmp的服务器无法满足日益增长的数据量,卡顿,延迟的现象时常出现,因此扩容,添加服务器势在必行.

二. 演变历程

  1. 单机版LNMP
  2. 独立数据库服务器
  3. web服务器集群与Session保持
  4. 动静分离,数据库集群
  5. 各种缓存服务与业务模型

样例展示

1.单机版LNMP

单机版LNMP.png
用户量少时使用,简单、成本低、存在单点故障。

2.独立数据库服务器

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

3.web服务器集群与Session保持

我们可以通过Nginx、Haproxy代理服务器实现Web负载均衡集群,也可以使用LVS调度器实现Web负载均衡集群。部署完Web集群后还需要考虑如何进行Session会话保持,方法很多,如:根据源IP保持,代理服务器重写Cookie信息,共享文件系统保存session,使用数据库共享session等等。
web1.png
对于网站内容而言可以分离为动态页面和静态页面,静态页面就需要数据文件,动态页面则需要CPU解析代码,需要消耗大量的CPU资源,因此可以将静态和动态分离为两组服务器,动态页面有脚本代码组成,是一种基于网页的应用程序
但是如果只有一台调度器依然会导致单点故障的问题,因此还需要使用Keepalived或Heartbeat之类的软件进行高可用配置
WEB服务器与session.png

4.动静分离,数据库集群

随着服务器的增加,虽然性能与并发量得到了明显的提升,但是数据的一致性、管理的便利性成为了新的问题,因此就需要增加统一的存储服务器,实现数据的同步一致,可以使用NFS,GlusterFS、Ceph等软件实现该功能,但此时所有应用服务器都连接一台数据库服务器进行读写操作,而且后期随着数据库中的数据不断增加,会导致数据库成为整个网站的瓶颈!这就需要我们对数据进行分库分表,创建数据库主从或者数据库集群,实现读写分离
动静分离,数据库集群.png

5.各种缓存服务与业务模型

业务模块.png

对于静态数据我们可以通过VARnish,squid或者nginx进行缓存,将数据缓存到距离用户更近的位置,构建CND(内容分发网络)框架.
对于传统的SQL数据库而言,我们也可以通过增加NoSQL数据库,实现数据缓存的功能,提示数据库的访问速度.
对数据库的优化放到后面的文章
Image placeholder
13621971426
未设置
  21人点赞

没有讨论,发表一下自己的看法吧

推荐文章
js框架与css框架的区别?

js框架与css框架的区别?一、JavaScript框架●Javascript框架是指以Javascript语言为基础搭建的编程框架。●Javascript框架就是将常用的方法进行封装,方便调取使用。

如何使用 Python 和 BeautifulSoup 爬取网站

互联网上的信息如此之多,任何人穷其一生也无法全部消化吸收。你需要的不是访问这些信息,而是一种可伸缩的方式,可以用来收集、组织和分析这些信息。你需要的是Web爬取。Web爬取可以自动提取数据,并以一种

GoWeb教程_12.2. 网站错误处理

我们的Web应用一旦上线之后,那么各种错误出现的概率都有,Web应用日常运行中可能出现多种错误,具体如下所示: 数据库错误:指与访问数据库服务器或数据相关的错误。例如,以下可能出现的一些数据库错误。

学习IT的实用工具和网站推荐

对于一些学习IT的初学者来说,掌握一些实用的软件工具和学习网站是十分有必要的。本文要为大家推荐一些学习IT的相关的资源,像是鸠摩搜书和脚本之家等电子书搜索网站,还有冰点文库和文件搜索工具等实用工具以及

上市公司招聘 PHP 高级架构师, 负责公司资讯网站

薪资35-40k*14【职位介绍】负责公司资讯平台开发,管理后端小团队岗位职责:负责公司资讯平台开发,管理后端小团队 负责平台开发、测试和维护工作; 岗位要求:计算机专业5年以上PHP开发经验,熟悉m

一个知名网站的微服务架构最佳实现

译者:蓝梦,十余年研发经验,现就职于某上市互联网公司。作者:小马,Medium 首席架构师。译者有话说,如果你的项目正在从单体升级为微服务而忧心;或者你在实践微服务过程中手忙脚乱,本文都是你不容错过的

lamp网站架构

c/s架构 b/s架构 b/s软件的优缺点

如何将网站的php版本信息隐藏起来

当我们把网站上线之后,我们可以通过curl的如下命令显示指定网站的头信息,curl的安装方法参考:https://www.wj0511.com/site/d...curl-Ihttps://www.w

如何使网站支持https访问?nginx配置https证书

购买SSL证书要想使用https访问你的网址,首先得拥有颁发的SSL证书。我这里申请的是阿里云免费的,有效期为一年,过期后再重新申请。申请SSL证书购买后,可在阿里云的搜索框输入证书关键字进入到控制台

网站集合

以下整理了平常用到的一些网站,其实是看到收藏夹日渐庞大,强迫症又犯了==,后面持续更新,如果有比较好用的网站或者有需要什么网站都欢迎留言~关于该页面的使用方式,可以使用快捷键Ctrl+F,然后输入关键

10个超好用的配色网站

01MaterialPalette网站地址:http://www.materialpalette.com/MaterialPalette是一款提供MaterialDesign配色的线上工具,它的用法很

技术大牛创业失败,原来是缺少这套思考框架

2016年以前,大众媒体对技术人创业的报道可以总结为一句话:“为何技术人创业更容易成功?”,2018年后,这个总结变成了“一个程序员创业的血泪史”。这样的转变令人哭笑不得。最近几年,技术创业者多到让

阿里提出针对多目标优化的全新算法框架,同时提升电商推荐场景 GMV 和 CTR

在推荐系统中,多目标优化一直是热门话题,阿里巴巴的XiaoLin、HongjieChen等人针对推荐中的多目标优化问题提出了一种基于帕累托效率的优化算法框架,并应用在电商推荐场景中,对GMV和CTR

GoWeb教程_13.0. 如何设计一个 Web 框架

前面十二章介绍了如何通过Go来开发Web应用,介绍了很多基础知识、开发工具和开发技巧,那么我们这一章通过这些知识来实现一个简易的Web框架。通过Go语言来实现一个完整的框架设计,这框架中主要内容有第一

GoWeb教程_14.0. 扩展 Web 框架

第十三章介绍了如何开发一个Web框架,通过介绍MVC、路由、日志处理、配置处理完成了一个基本的框架系统,但是一个好的框架需要一些方便的辅助工具来快速的开发Web,那么我们这一章将就如何提供一些快速开发

使用 Go Wails 框架来构建桌面应用(Go+Vue.js)

众所周知,Go主要用于构建API、web后端和CLI工具。但有趣的是,Go可以用在我们没有预料到的地方。 例如,我们可以使用Wails框架用Go和Vue.js构建一个桌面应用程序。 这是一个新框架,

SpringBoot个人应用开发框架(SpringBoot版本2.1)+IDEA

前言: 此笔记为本人首个SpringBoot项目框架学习实践记录,期间参考了许多大神的笔记和心得。 参考文档如下: 项目git地址: 一、创建SpringBoot工程 1.1创建父POM工程结

Go语言高级编程_4.7 pbgo: 基于Protobuf的框架

4.7pbgo:基于Protobuf的框架 pbgo是我们专门针对本节内容设计的较为完整的迷你框架,它基于Protobuf的扩展语法,通过插件自动生成rpc和rest相关代码。在本章第二节我们已经展示

🚀 Hyperf 发布 v1.1.8 版本 | 企业级的 PHP 微服务云原生协程框架

更新内容 新增 #965新增RedisLua模块,用于管理Lua脚本; #1023hyperf/metric组件的Prometheus驱动新增CUSTOM_MODE模式; 修复 #1013修复Js

搭建 Spring+SpringMVC+MyBatis 框架

SSM框架整合 pom中添加依赖 添加编辑Spring配置文件 添加编辑SpringMVC配置文件 添加编辑Mybatis配置文件 配置web.xml 1、pom中添加依赖 junit ju

🚀 Hyperf 发布 v1.1.9 版本 | 企业级的 PHP 微服务云原生协程框架

更新内容 本周更新主要为DI组件新增了懒加载功能,配置为懒加载后,注入的对象为一个代理对象,在使用到时,才会实现对象的初始化。以及为DIContainer增加了set和define方法来动态的增加对象

最流行的 Go Web 框架: GitHub Star 数量排行(2019)

搜索到了这个资源,可以一目了然地看到GitHub上GoWeb框架受欢迎程度,分享给大家。项目名称 GitHubStar数 创建年份 gin 33177 2014 beego 22599 2012 ir

PPT 分享:《10 个 Go Web 开发框架对比》

在SpeakerDeck上发现一个不错的PPT分享给大家。 原链接:https://speakerdeck.com/fedir/comparison-o... 百度盘链接:https://pan.ba

基于 Laravel 5.5 + H+UI 框架的权限管理后台

laravel玩的比较少,就自己写了管理系统来熟悉该框架,再次特地记录一下!目前功能只写了权限管理功能,如有不足之处,还请大拿们多多指教!介绍PHP框架:Laravel5.5 前端框架:H+后台主题U

{