面对并发我们是如何优化KuangStudy网站性能的?

每个项目都会随着用户和数据的增长调整架构,来面对未来的问题,我们也不例外,在1月5号我们平台正式公测后,引起了很多观众的热烈反响,仅仅4天,注册用户便破万。随之而来的就是平台开始变得卡顿,所以我们开始了我们的问题排查和优化,下面就和大家聊聊我们是如何处理的吧。

Nginx

一个网站,核心会分为几部分:前端、后台服务、数据库,服务器。我们最开始项目是打的jar包 ,一个tomcat支撑不了多少并发,Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。但是每次直播的时候,并发会暴增,所以我们只能开始搭建集群。

搭建集群后引入了Nginx做反向代理,负载均衡也解决了,我们根据不同的服务器的性能做了权重,果然增加了Nginx,做了负载之后,网站访问快了不少。但是又迎来了Session共享的问题,我们将用户的会话信息放入redis,session共享搞定。接入层搞定了之后,我们发现我们的江湖模块还是很慢。

慢SQL

我们开始排查日志,发现了一些SQL处理竟然要1.5s左右,简直受不了。根本问题是我们做了联表查询,关联的表比较多,于是我们开始优化数据库结构,增加了许多冗余字段,后面江湖首页,只用查询一个表了,从蜗速到现在几乎秒开了。分类我们从数据库查询优化到使用静态数据管理,因为几乎不会发生变化。同时消息提示的sql还有个人主页的sql我们也做了相应的处理,所以现在整个网站的响应速度大大提高了。

主从复制、读写分离

接入层的问题解决后,我们发现项目的压力瓶颈转移到了数据库上面,开始我们还是单个数据库,但是用户的热情远远超出了我们的想象,读和写都在一个数据库,性能完全不太够用,于是我们又买了一台服务器开始做主从,MySQL的主从还是比较简单的,几个命令就搭建好了,然后我们使用了sharding jdbc来做读写分离。写完之后,网站整体的性能都提高了。于是我们发了版,保证了线上运行不卡顿。

信任与责任

连续一周,我们都是凌晨两三点睡,不断的优化用户的建议,让平台越来越稳定和完善,不过努力都是值得的,用户越来越多,迎来了众多年会员的同时,我们也迎来了我们的第一个终身会员,这是信任,这是责任。我不能辜负大家的信任,做更多有意义的事情,做更纯净的社区,做更多的开源组件和更优质的教程来帮助大家,这是我们团队的使命,也是学相伴的使命。

无论遇到多少的Bug,就像飞哥说的,我们灭了它就完事了!没有解决不了的问题,这就是属于我们技术人的底气!

邀请入驻

如果大家平时有写文章的爱好,或者已经有了很多笔记,也欢迎大家能够将自己的文章搬到我们的kuangstudy平台上,提出宝贵的意见,可能我们现在不是最好的,但是我们会努力变成最好的!

以学为伴,一生相伴!

看到了这里,不妨点个喜欢支持我们一下吧!

最新文章

  1. 基于NPOI的报表引擎——ExcelReport
  2. [ JS 进阶 ] 基本类型 引用类型 简单赋值 对象引用
  3. DNS学习笔记之DNS理论知识
  4. python第一天基础1-2
  5. STM32之USART-RS485
  6. IOS第二天多线程-04简化单例模式
  7. Swift语言—有趣的字符串连接、数组、字典
  8. 你真的会用 SDWebImage?
  9. Android面试题整理(1)
  10. SolrCloud简介
  11. 使用Spring框架的好处(转帖)
  12. 初识Hibernate的主配置和映射配置
  13. Python机器学习中文版
  14. 关于各种O,DO/BO/DTO/VO/AO/PO
  15. 【npm】伙计,给我来一杯package.json!不加糖
  16. Codeforces Round #443 (Div. 1) A. Short Program
  17. git 错误 fatal: Not a valid object name: 'master'
  18. 前端框架之Vue(5)-条件渲染
  19. unigui发展路线图
  20. Java 8 – Period and Duration examples

热门文章

  1. Noip模拟35 2021.8.10
  2. sort方法和自定义比较器的写法
  3. 攻防世界 web3.backup
  4. C++实现红黑树
  5. Python 模块feedparser安装使用
  6. IM服务器:开发一个高并发的IM服务器难在哪
  7. 接口自动化 - pytest-fixture -scope作用范围
  8. loadrunner12自带的机票预订服务,解决httpd: Could not reliably determine the server's fully qualified domain name 问题
  9. Unicode、UTF-8、UTF-16 终于懂了
  10. 湖湘杯2020 writeup