面对并发我们是如何优化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平台上,提出宝贵的意见,可能我们现在不是最好的,但是我们会努力变成最好的!

以学为伴,一生相伴!

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

网站性能调优实战-学相伴KuangStudy的更多相关文章

  1. Java性能调优实战,覆盖80%以上调优场景

    Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...

  2. JVM 性能调优实战之:一次系统性能瓶颈的寻找过程

    玩过性能优化的朋友都清楚,性能优化的关键并不在于怎么进行优化,而在于怎么找到当前系统的性能瓶颈.性能优化分为好几个层次,比如系统层次.算法层次.代码层次…JVM 的性能优化被认为是底层优化,门槛较高, ...

  3. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  4. spring-petclinic性能调优实战(转)

    1.spring-petclinic介绍 spring-petclinic是spring官方做的一个宠物商店,结合了spring和其他一些框架的最佳实践. 架构如下: 1)前端 Thymeleaf做H ...

  5. Apache Pulsar 在 BIGO 的性能调优实战(上)

    背景 在人工智能技术的支持下,BIGO 基于视频的产品和服务受到广泛欢迎,在 150 多个国家/地区拥有用户,其中包括 Bigo Live(直播)和 Likee(短视频).Bigo Live 在 15 ...

  6. [网站性能2]Asp.net平台下网站性能调优的实战方案

    文章来源:http://www.cnblogs.com/dingjie08/archive/2009/11/10/1599929.html 前言    最近帮朋友运营的平台进行了性能调优,效果还不错, ...

  7. Asp.net平台下网站性能调优的实战方案(转)

    转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...

  8. PHP 性能分析第三篇: 性能调优实战

    注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或  PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...

  9. 高性能 Java 计算服务的性能调优实战

    作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...

随机推荐

  1. 使用jQuery-UI来实现一个Ajax的自动完成功能(自动填充搜索框的下拉值)

    首先你要在.net拓展包中去搜索  jquery ui (Combined Libray)安装这么个文件 第二部   在控制器中添加我们根据输入搜索框的值获取符合的记录集的action 第三步  有了 ...

  2. 正则表达式之grep

    grep 的五个参数,基本的常用的: -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺 ...

  3. Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例

    Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例 一位客户最近觉得觉得他的LED台灯好闪, 于是拆了看看,里面的控制板是这样的: 干掉双色调光功能,只调亮度的话闪烁的状况能好转 ...

  4. 记一次CTF比赛过程与解题思路-MISC部分

    前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼- 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近 ...

  5. Linux&C 线程控制 课后习题

    Q1:多线程与多进程相比有什么优势? 多进程程序耗费的资源大,因为fork()的时候子进程需要继承父进程的几乎所有东西,但是多线程程序线程只继承一部分,即自己的私有数据,例如自己的线程ID,一组寄存器 ...

  6. FastJson 解析、序列化及反序列化

    一.环境准备:使用maven特性在pom.xml中导入fastjson的依赖包 <!-- https://mvnrepository.com/artifact/com.alibaba/fastj ...

  7. 初试Docker-打包构建镜像

    在 docker 中,镜像的结构是以层次划分的,也就是可以在每一层上添加自己的修改,变成新的镜像. docker 两种打包方式如下: commit build docker commit 注意: do ...

  8. requestAnimationFrame 执行机制探索

    1.什么是 requestAnimationFrame window.requestAnimationFrame() 告诉浏览器--你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更 ...

  9. HTTP 缓存终极指南

    TL;DR 错误的缓存策略是如何抵消你所做的性能优化工作的. 缓存存在于客户端并且通过chrome或者其他抓包工具查看其状态信息. 客户端通过header中的各个字段做缓存的过期判断. 代理服务器上也 ...

  10. 深入理解Spring IOC源码分析

    Spring容器初始化 本文使用的是Spring 5.1.7版本 写在前面:我们看源码一般有3种方式. 第一种直接用class文件,IDEA会帮我们反编译成看得懂的java代码 第二种是用maven的 ...