对于高并发问题,我认为总的来说可以分为三个方面:前端,服务器,数据库。

前端:web线程连接数不足

后台:服务器网络带宽不足

数据库:数据库连接查询速度上不去

针对于这三方面来说要各有针对性的优化方法

(对于高并发问题,只有不断优化,而不存在绝对的并发安全)

前端:实现负载均衡,配置前置代理服务器,如NGINX,Apache等;

后台:增加网络带宽,DNS域名解析分发多台服务器;

数据库:对数据处查询进行优化,实现读写分离

个人对处理高并发问题的一些理解:

对于处理高并发问题,顺序应该是 代码 > 软件 > 硬件 因为成本消耗是逐步提升的而且差距非常大,所以应该先从程序代码来优化在逐步考虑软件以及硬件。

下面具体来说一些高并发常需处理的问题:

代码方面(其实有很多细节可以做到优化代码,我只举几个例子)

比如

不要频繁的new对象,对于整个应用中,只需存在一个实例的类要采用单例模式,不要用String 进行字符串连接,而使用StringBuffer或StringBuilder;

尽管Exception可以控制方法的退出,但Exception要保留stacktrace消耗性能;

尽量少使用instanceof作为条件判断,尽量使用‘比’作为条件;

在使用类的时候尽量选取效率高的类,比如ArrayList就比Vector要好。

尽量多使用缓存机制,多花点内存做缓存可以大量减少与数据库的交互提高性能;

前端使用静态页面,减少容器的解析;

优化数据库结构,多做索引提高效率;

统计功能尽量做缓存,每天定时统计相关的报表,避免必要时统计

………

硬件提升:搭建服务器集群,数据库集群,实现读写分离等等

正如短板决定水桶的盛水量,我们应该知道并发瓶颈到底出现在哪一方面,才能做出针对行的优化,所以我们可以利用一些类似于jprofiler工具来找出并发瓶颈再进行处理

转载于:https://www.cnblogs.com/mark5/p/11089784.html

高并发 问题怎么解决相关推荐

  1. SpringCloud Hystrix微服务架构的高并发问题与解决策略

    一.微服务架构的高并发问题 背景:由于服务器的最大处理线程数都是有上线的,比如tomcat等.当系统某时刻出现高并发请求时,如秒杀活动等,在瞬间服务器可处理线程数瞬间使用完,线程资源耗尽.当后面的其他 ...

  2. Java高并发,如何解决,什么方式解决

     对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一 ...

  3. java redis 并发_Redis高并发问题的解决方法

    本文讲述了Redis高并发问题的解决办法.分享给大家供大家参考,具体如下: redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value, ...

  4. 关于高并发的一些解决办法(转载)

    本文转载于博客园     魔流剑的博客    网址:  https://www.cnblogs.com/lr393993507/p/5909804.html   想看原版的自行点击传送门. 对于我们开 ...

  5. php抢红包 并发 超时,处理高并发 IO瓶颈解决红包程序

    解决高并发 io瓶颈解决红包程序 本程序模拟的红包抽奖模式.总金额100元,随机用户获得1-10元的红包,直到红包分发完. redis中luckMoneyMax需要提前设置 $r->set('l ...

  6. python访问数据库如何解决高并发_怎样解决数据库高并发的问题

    怎样解决数据库高并发的问题?解决数据库高并发使用缓存式的Web应用程序架构.增加Redis缓存数据库.增加数据库索引.页面静态化.使用存储过程.MySQL主从读写分离.分表分库.负载均衡集群. 解决数 ...

  7. 【高并发】如何解决可见性和有序性问题?这次彻底懂了!

    写在前面 大冰:小菜童鞋,目前,我们把所有可见性问题.原子性问题和有序性问题都介绍完了,感觉自己有啥进步吗? 小菜:大冰哥,通过前面的学习,感觉自己进步确实挺大的,原来学习并发编程包含的知识点这么多, ...

  8. Java高并发的方式解决

    对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1 ...

  9. Redis高并发问题的解决

    redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘.由于单线程所以redis本身并没有锁的概念,多个客户端连接 ...

  10. 什么是高并发,怎么解决高并发

    当提到高并发的时候,很多人就有疑问,到底什么是高并发编程? 以登录功能为例.当登录的时候,是用户拿用户名,密码到数据库里访问是否存在,存在则跳转到登录页面.然后修改访问次数为+1.否则跳转到失败页面, ...

最新文章

  1. C++生成随机数:负二项分布/帕斯卡分布(negative binomial distribution)
  2. HDU-2079 选课时间(题目已修改,注意读题) -母函数
  3. abaqus切削为什么没有切屑_SiCp/Al复合材料超声振动辅助切削研究现状与进展
  4. (百万浏览量!)超详细MySQL安装及基本使用教程(史上最详细)
  5. C# Job System
  6. 关于ByteBuffer使用解释
  7. Ubuntu 如何为 XMind 添加快速启动方式和图标
  8. 2021中国成人教育市场及用户洞察报告
  9. Java知多少(81)框架窗口基础
  10. (开源)XMind2TestCase一个高效的测试用例设计解决方案
  11. 修改mongodb oplog size
  12. Shell脚本基础语法教程
  13. SPSS学习 (一)概述
  14. 路由器刷机教程图解_路由器刷固件图文教程,刷机OpenWrt第三方固件,路由器升级固件...
  15. chainlink2022年春季编程马拉松
  16. 职工考勤管理信息系统数据库课设_公司员工考勤管理信息系统的设计与实现
  17. nil pointer evaluating interface {}.replicaCount
  18. 适合的才是最好的:记一次内网安装feather经历
  19. 场地预约小程序解决方案
  20. Charmer--viv

热门文章

  1. testmeshpro合批_UGUI合批原理笔记
  2. 怎么判断间隙过渡过盈配合_圆柱销有2个标准,选型注意材料和热处理,特别是销孔的配合关系...
  3. pythonATM,购物车项目实战6-用户登录功能的实现
  4. Python列表中数据插入数据库
  5. JS获取填报扩展单元格控件的值
  6. powerbi 线性回归_微软Power BI 每月功能更新系列——11月Power BI 新功能学习
  7. linux中python如何调用matlab的数据_如何在Python中创建Gif动图?(动图数据可视化基础教学)
  8. 高清电视开播:大多用户仍难跨入
  9. nginx安装问题 Makefile Error 127
  10. 总结2012,展望2013