网站如何应对高负载
最近面试了两家公司,虽然说他们产品研发团队不是怎么大,也在组建过程中,但估计leader是有点料的,总是抓住高负载的问题不放,本人才疏学浅,只能答一些表面的东西,最终基于各方面评价被pass。在此列一下自己关于这个问题的答案,希望大家有补充完善-_-
- 前端资源尽量减少请求量,只加载一个css文件和js文件,使用工具对css和js文件进行压缩;
- 服务器nginx配置前端资源缓存,与资源压缩(问我nginx了解多少,内部原理等,不好意思,只了解web站点的配置,只知道nginx接收到请求分配给php-fpm进程来处理业务的,又问我php-fpm接收到任务内部是怎么运行的,对不起,这个没研究过);
- 从业务代码层面上进行优化,优化算法;
- 对请求数据库的sql进行调优,可以通过慢查询进行检查;
- 对数据库进行优化,数据库字段及索引方面,分库分表(但是不建议,目前项目有这样使用,接手的时候别人设计的,带来很多后续问题不好解决);
- 使用缓存opcache,使用中间件memcache或redis(类型有几种,5种,都在什么场景下使用,嗯。。。。答不出来);
- 使用负载均衡(用过吗?学习的时候玩过,实际项目没用过,只是简单用阿里的负载均衡);
- 数据库集群,主主复制,主从复制,写主服务器,读从服务器(通过什么来进行同步的?binlog。用过吗?实际项目没有用过,只是学习的时候自己搭虚拟机玩过而已);
- mysql数据库承受多大的压力,答曰:这个看别人文章了解到是能够承受千万级别是没有问题的。测试过吗,答曰:这个还真没有测试过。
以上是我对面试遇到这个问题的回答总结,当然,面试的时候可以没有想得这么全面,回答的这么全面,欢迎大家来总结补充。
当然还有其他共同的问题,回头再来总结
- 怎么理解MVC
- 抽象类和接口的区别
- 设计模式
推荐文章: