高并发 问题怎么解决
对于高并发问题,我认为总的来说可以分为三个方面:前端,服务器,数据库。
前端:web线程连接数不足
后台:服务器网络带宽不足
数据库:数据库连接查询速度上不去
针对于这三方面来说要各有针对性的优化方法
(对于高并发问题,只有不断优化,而不存在绝对的并发安全)
前端:实现负载均衡,配置前置代理服务器,如NGINX,Apache等;
后台:增加网络带宽,DNS域名解析分发多台服务器;
数据库:对数据处查询进行优化,实现读写分离
个人对处理高并发问题的一些理解:
对于处理高并发问题,顺序应该是 代码 > 软件 > 硬件 因为成本消耗是逐步提升的而且差距非常大,所以应该先从程序代码来优化在逐步考虑软件以及硬件。
下面具体来说一些高并发常需处理的问题:
代码方面(其实有很多细节可以做到优化代码,我只举几个例子)
比如
不要频繁的new对象,对于整个应用中,只需存在一个实例的类要采用单例模式,不要用String 进行字符串连接,而使用StringBuffer或StringBuilder;
尽管Exception可以控制方法的退出,但Exception要保留stacktrace消耗性能;
尽量少使用instanceof作为条件判断,尽量使用‘比’作为条件;
在使用类的时候尽量选取效率高的类,比如ArrayList就比Vector要好。
尽量多使用缓存机制,多花点内存做缓存可以大量减少与数据库的交互提高性能;
前端使用静态页面,减少容器的解析;
优化数据库结构,多做索引提高效率;
统计功能尽量做缓存,每天定时统计相关的报表,避免必要时统计
………
硬件提升:搭建服务器集群,数据库集群,实现读写分离等等
正如短板决定水桶的盛水量,我们应该知道并发瓶颈到底出现在哪一方面,才能做出针对行的优化,所以我们可以利用一些类似于jprofiler工具来找出并发瓶颈再进行处理
转载于:https://www.cnblogs.com/mark5/p/11089784.html
高并发 问题怎么解决相关推荐
- SpringCloud Hystrix微服务架构的高并发问题与解决策略
一.微服务架构的高并发问题 背景:由于服务器的最大处理线程数都是有上线的,比如tomcat等.当系统某时刻出现高并发请求时,如秒杀活动等,在瞬间服务器可处理线程数瞬间使用完,线程资源耗尽.当后面的其他 ...
- Java高并发,如何解决,什么方式解决
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一 ...
- java redis 并发_Redis高并发问题的解决方法
本文讲述了Redis高并发问题的解决办法.分享给大家供大家参考,具体如下: redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value, ...
- 关于高并发的一些解决办法(转载)
本文转载于博客园 魔流剑的博客 网址: https://www.cnblogs.com/lr393993507/p/5909804.html 想看原版的自行点击传送门. 对于我们开 ...
- php抢红包 并发 超时,处理高并发 IO瓶颈解决红包程序
解决高并发 io瓶颈解决红包程序 本程序模拟的红包抽奖模式.总金额100元,随机用户获得1-10元的红包,直到红包分发完. redis中luckMoneyMax需要提前设置 $r->set('l ...
- python访问数据库如何解决高并发_怎样解决数据库高并发的问题
怎样解决数据库高并发的问题?解决数据库高并发使用缓存式的Web应用程序架构.增加Redis缓存数据库.增加数据库索引.页面静态化.使用存储过程.MySQL主从读写分离.分表分库.负载均衡集群. 解决数 ...
- 【高并发】如何解决可见性和有序性问题?这次彻底懂了!
写在前面 大冰:小菜童鞋,目前,我们把所有可见性问题.原子性问题和有序性问题都介绍完了,感觉自己有啥进步吗? 小菜:大冰哥,通过前面的学习,感觉自己进步确实挺大的,原来学习并发编程包含的知识点这么多, ...
- Java高并发的方式解决
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1 ...
- Redis高并发问题的解决
redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘.由于单线程所以redis本身并没有锁的概念,多个客户端连接 ...
- 什么是高并发,怎么解决高并发
当提到高并发的时候,很多人就有疑问,到底什么是高并发编程? 以登录功能为例.当登录的时候,是用户拿用户名,密码到数据库里访问是否存在,存在则跳转到登录页面.然后修改访问次数为+1.否则跳转到失败页面, ...
最新文章
- C++生成随机数:负二项分布/帕斯卡分布(negative binomial distribution)
- HDU-2079 选课时间(题目已修改,注意读题) -母函数
- abaqus切削为什么没有切屑_SiCp/Al复合材料超声振动辅助切削研究现状与进展
- (百万浏览量!)超详细MySQL安装及基本使用教程(史上最详细)
- C# Job System
- 关于ByteBuffer使用解释
- Ubuntu 如何为 XMind 添加快速启动方式和图标
- 2021中国成人教育市场及用户洞察报告
- Java知多少(81)框架窗口基础
- (开源)XMind2TestCase一个高效的测试用例设计解决方案
- 修改mongodb oplog size
- Shell脚本基础语法教程
- SPSS学习 (一)概述
- 路由器刷机教程图解_路由器刷固件图文教程,刷机OpenWrt第三方固件,路由器升级固件...
- chainlink2022年春季编程马拉松
- 职工考勤管理信息系统数据库课设_公司员工考勤管理信息系统的设计与实现
- nil pointer evaluating interface {}.replicaCount
- 适合的才是最好的:记一次内网安装feather经历
- 场地预约小程序解决方案
- Charmer--viv
热门文章
- testmeshpro合批_UGUI合批原理笔记
- 怎么判断间隙过渡过盈配合_圆柱销有2个标准,选型注意材料和热处理,特别是销孔的配合关系...
- pythonATM,购物车项目实战6-用户登录功能的实现
- Python列表中数据插入数据库
- JS获取填报扩展单元格控件的值
- powerbi 线性回归_微软Power BI 每月功能更新系列——11月Power BI 新功能学习
- linux中python如何调用matlab的数据_如何在Python中创建Gif动图?(动图数据可视化基础教学)
- 高清电视开播:大多用户仍难跨入
- nginx安装问题 Makefile Error 127
- 总结2012,展望2013