网站高并发解决方案

网站高并发解决方案
            杜振训 QQ:5552123
一,程序方面 
1,网站页面静态化,CSS,JS进行压缩。图片,JS,CSS等静态文件可以部署到静态服务器或CDN。
2,业务拆分,微服务
3,异步处理,如图片处理。图片识别,发送短信。
4,php增加opcode的缓存,PHP执行的时候,会被编译成opcode,然后zend引擎会执行opcode。
5,增加PHP-FPM线程数
6,耗费CPU的计算处理看情况放在客户端执行。充分利用客户端的cookie时,存储。
7,代码优化

二,数据库方面
1,做数据库读写分离,一主(或双主,二级主库打开登录从属更新,选择黑洞引擎作为表引擎)多从的方式。或是使用MHA架构
2,开启数据缓存,sort_buffer_size的值,read_rnd_buffer_size
3,使用缓存,如redis的,分布式缓存
4,优化SQL,加快SQL查询时间(可采用分库分表的策略,定期重建索引等)。
5,高并发写入操作可以先放入到redis的队列中。后台进行异步批量插入MySQL的库。
6,开启慢日志,分析慢查询,sql回滚记录,索引击中数,检查表,优化表。查看mysql processlist线程

三,Nginx的方面
worker_processes xxx;
worker_rlimit_nofile xxx;
worker_connections xxxx;
gzip on;
改写 
负载均衡upstream
代理proxy_pass
静态资源缓存,静态资源防盗链。
尽量不要提供超过2M的大文件下载


四,服务器方
1,关闭swap交换分区
2,调整的/etc/sysctl.conf
3,修改打开连接数/ proc / sys / fs / nr_open
4,IP黑名单
5,使用鱿鱼或者清漆做缓存代理,使用LVS服务器负载均衡,LVS服务器结合KEEPALIVED做高可用

五,硬件方面
1,硬件方面最好使用ssd硬盘
2,服务器同机房,使用内网

六,监控
日志收集:Logstash + Elasticsearch + Kibana
系统层:CPU,内存,负载,I / O,网卡
应用层:QPS,API响应时长,Redis的内存使用量,队列任务数,PHP-FPM进程数据,MySQL的线程数



猜你喜欢

转载自blog.csdn.net/duzhenxun/article/details/80798683