怎样学习才能拥有所谓“高并发”的经验?

要具备高并发的经验确实需要有实际项目,因为业务逻辑其实很容易理清,但是要在高并发的情况下如何找到业务繁忙的热点并进行优化,完全只能凭经验.假如没有靠谱的公司,接触不到高并发的业务场景怎么办?从处理技巧上,可以通过大牛学习高并发的架构,至少你可以知道处理高并发的业务逻辑是:前端:异

要具备高并发的经验确实需要有实际项目,因为业务逻辑其实很容易理清,但是要在高并发的情况下如何找到业务繁忙的热点并进行优化,完全只能凭经验.


假如没有靠谱的公司,接触不到高并发的业务场景怎么办?


从处理技巧上,可以通过大牛学习高并发的架构,

至少你可以知道处理高并发的业务逻辑是:


  • 前端:异步请求+资源静态化+cdn

  • 后端:请求队列+轮询分发+负载均衡+共享缓存

  • 数据层:redis缓存+数据分表+写队列

  • 存储:raid阵列+热备

  • 网络:dns轮询+DDOS攻击防护


对于高并发并没有什么通用解决方案,必须根据业务场景进行分析,不同的业务场景对于架构的取舍是不一样的.

但万变不离其宗,掌握这些处理高并发的分析方法还是很有必要的.

如何学习高并发的工具?

处理高并发的开源轮子其实很多.很多高并发的架构分享都会提及使用的工具,自己多留心,再看看手册,有条件自己搭起来跑一跑.
redis,nginx/Tengine,keeplive,DRBD,heartbeat这些小工具还是可以在虚拟机上面多开几台跑起来的.

至于大业务场景,除了进大公司没有别的办法,因为有些工具运行的配置要求太高,必须多台服务器配合才能完成.

如何模拟高并发场景?


并不是只有实际生产环境才能测试高并发,其实模拟高并发的轮子也很多,最常用的apache benchmark,winrunner,loadrunner,这些教程很多,用来模拟基本的高并发业务绰绰有余,自己安装试用版,学学如何用,模拟些常用的业务.
如果有精力,业内很喜欢用perl,python,C来写一些针对热点业务的负载脚本.这需要有http协议等网络封包的理论基础.