前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网站架构发展与调优 思路 & 网站优化 & 网站反应慢

网站架构发展与调优 思路 & 网站优化 & 网站反应慢

作者头像
收心
发布2022-01-14 09:07:52
9940
发布2022-01-14 09:07:52
举报
文章被收录于专栏:Java实战博客

一开始,网站是一个单体架构,一般都是由Tomcat作为web服务器。

Tomcat的并发量有限,一般在200-300之间并发就属于很好了。

随着网站用户的增多,单个Tomcat已经不再能抗的住压力了。

就需要服务器引入nginx,Nginx官方宣传5W并发量,利用其反向代理,可以加入很多台Tomcat处理。但是有个问题,多机器Tomcat的Session之间共享问题。这个时候就需要引入Redis作为存储各个Tomcat之间的Session共享问题,同时 redis 也可作为下面的优化使用。一些经常查询的热点数据,可以存入Redis,加快相应速度,也就不用直接取数据库查询了。

到了这样时候,其实还远远不够。

既然引入了Nginx,就需要进行适当的前后端分离,做到动静分离,可以加快页面的相应速度(静态资源,直接由Nginx返回,动态数据在由Tomcat处理,解决了Tomcat需要处理静态资源所造成的资源浪费)。

到了这样,如果访问网站依旧很慢,就需要考虑前端项目加载问题了。就需要引入OSS对象存储了,将相关的多媒体资源,放到OSS中,并需要解决好跨域问题即可。

如果还是慢,前端就需要考虑加入懒加载,较少一次性渲染全部资源,造成的瞬时带宽压力。

这样还是慢,我们就需要考虑后端服务慢的问题了,观察Mysql压力并作出优化(慢日志等sql优化,数据库设计增加冗余字段,减少跨表查询)。

搭建Mysql集群,做到主从复制、读写分离等。

如果单纯集群Mysql 还是不能很好的解决问题,那就需要引入搜索引擎 ElaticSearch。

其可加快全文搜索等相关搜索功能的速度。

即使这样,Mysql表现依旧不佳。就需要考虑升级服务器配置。

然后适当引入消息中间件。来解决 并发请求存在时间差异问题。

还不行,说明你的网站 足够大,足够牛逼,搭建企业机房。搭建机器集群来应对相关压力。

说了那么多,没有说到后台代码业务逻辑优化上。必要条件,还是要分析业务逻辑,找寻突破点进行优化。

上面加入OSS的时候,应该说要加CDN,但是有人说加入CDN,并没有加快访问速度,还需要额外付费,不划算。这个架构总结,就到这里。

特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档