高并发伴随着大数据
1.首先使用top命令查看cpu或者ps -aux查看一些比较占用内存的进程,然后再进行分析
2.当重启php-fpm不管用的时候,要考虑是否是数据库层的原因
排查php-fpm方法:写一个php脚本然后php执行这个脚本
排查mysql:在查数据之前打印一下时间,在查询之后的代码打印一下时间 (是否是因为mysql查询缓慢的问题或者mysql连接不到),
第一次出问题是因为超过了mysql最大连接数,这个时候想到了swoole的协程连接池
第二次出现问题通过查询mysql的慢日志,根据对应的sql添加合适的索引,然后注意查询时不要带*查询
3.关于代码层面,一定要注意分层,开始的时候多写一点,后期改动代码时容易改动,很有必要;不能写一些hardcode,还有不能直接在框架的service层中die,返回结果在controller层;然后部分脚本要注意大量数据时的出现运行时间的重复执行等问题
4.高并发下会出现一些奇怪的问题,尽量保证基本的业务逻辑不出现问题,然后使用一些异步操作如rabbitmq会更合适,对应搭建负载均衡
5.数据库选择rds,不管是数据备份还是扩容数据都很方便,但是rds不能操控要及时备份本地数据;查询或者存储时尽量从redis或者es中查询