设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 388|回复: 4
打印 上一主题 下一主题

服务器高并发问题如何解决

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
发表于 2020-4-20 13:52:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于高并发问题,认为总的来说可以分为三个方面:前端,服务器,数据库。
1.前端:web线程连接数不足;
2.后台:服务器网络带宽不足;
3.数据库:数据库连接查询速度上不去;

针对于这三方面来说要各有针对性的优化方法。(对于高并发问题,只有不断优化,而不存在绝对的并发安全)
1.前端:实现负载均衡,配置前置代理服务器,如NGINX,Apache等;
2.后台:增加网络带宽,DNS域名解析分发多台服务器;
3.数据库:对数据处查询进行优化,实现读写分离;

这是我个人对处理高并发问题的一些理解:
1.对于处理高并发问题,顺序应该是 代码 > 软件 > 硬件 因为成本消耗是逐步提升的而且差距非常大,所以应该先从程序代码来优化在逐步考虑软件以及硬件;
2.在预算足够的情况下,很简单粗暴的方法就是升级服务器配置、带宽;


下面具体来说一些高并发常需处理的问题:
代码方面(其实有很多细节可以做到优化代码,我只举几个例子)
比如
不要频繁的new对象,对于整个应用中,只需存在一个实例的类要采用单例模式,不要用String 进行字符串连接,而使用StringBuffer或StringBuilder;
尽管Exception可以控制方法的退出,但Exception要保留stacktrace消耗性能;
尽量少使用instanceof作为条件判断,尽量使用‘比’作为条件;
在使用类的时候尽量选取效率高的类,比如ArrayList就比Vector要好。


尽量多使用缓存机制,多花点内存做缓存可以大量减少与数据库的交互提高性能;
前端使用静态页面,减少容器的解析;
优化数据库结构,多做索引提高效率;
统计功能尽量做缓存,每天定时统计相关的报表,避免必要时统计
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|中国U网    

GMT+8, 2024-5-16 00:42 , Processed in 0.069476 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表