邮箱:admin@youweb.com
手机:13800000000
电话:400-123-4567
地址:广东省广州市天河区88号
发布时间:2024-08-26 05:15:23 人气:
思路: 从硬件上升级。优化数据库,改善数据库的负载压力。资源优化,禁止非本站服务器盗用本站资源
具体做法: 1、加配服务器,提高服务器硬件配置
2、配置数据库主从复制将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能,实现数据库的读写分离,改善数据库的负载压力
3、防盗链。修改nginx配置文件。设置valid_referers。或者使用加密签名,使用第三方模块HttpAccessKeyModule实现nginx防盗链。
思路:优化主要可以通过优化性能方面分web前端性能优化和服务器后端优化。
具体做法:
一、 前端性能优化部分
a) 浏览器端优化
i. 减少http请求,合并CSS,JS,图片等
ii. 动静资源文件分离,多域名分布式部署
iii. 使用浏览器缓存,静态资源可以缓存在浏览器中
iv. 启用压缩,对文件压缩,减少传输的数据量,浏览器端解压,这对服务器和浏览器端都有压力
v. CSS放在页面最上,js放在页面最下面
vi. 减少Cookie传输
b) CDN加速
i. CDN本质就是缓存,而且将数据缓存在离用户最近的地方。
c) 反向代理 squid
i. 传统代理服务器位于浏览器一侧,而反向代理服务器位于网站机房一侧。反向代理服务器通过配置缓存功能,加速网站响应
ii. 反向代理具有保护网站安全的作用,所有请求都须经过反代服务器。反代还可以实现负载均衡。
二、 服务器后端性能优化
a) 高性能的代码
i. 多线程,需要注意线程安全问题
ii. 资源复用
iii. 数据结构
iv. 垃圾回收
b) 数据库查询优化和索引优化,存储性能优化
表结构设计选取合理的字段类型
表结构的拆分,水平和垂直方式
创建高效的索引
搜索引入ElasticSearch, solr等全文检索
c) 增加缓存优化
分布式缓存,redis集群
d) 分布式,集群方案
负载均衡,缓存集群,DB集群,文件系统集群 等
e) 消息队列异步处理
Kafka,RabbitMQ,RocketMQ,ZeroMQ
f) 业务架构分层,微服务架构
数据层,服务层,应用层
常见解法:解决方法有局限性,只能从单一的角度去减轻服务器的压力,同时成本较高,处理并发的能力也不高。
通用大牛解法:从多个方面,多个角度解决问题,每一个层级都有所对应的改善服务器压力的方法,开销小,节约资金,能够有效提高高并发状态下的服务器性能。
问题: 高并发会带来怎么样的后果
解答: 对于服务端导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的;对于用户来说体验感差
项目中用到的点:抽奖功能、用户行为数据统计、秒杀活动
书籍:
《大型网站技术架构-核心原理和案例分析》
《大型网站技术架构演进与性能优化》
相关推荐