浅谈高并发解决方案

摘要: 高并发一直是然个人头疼的问题;然而,其解决方式则是一套组合策略,由整体入手,逐步分析,逐步解决部分问题,进而解决所有问题;就像一支庞大的输水管道,不断的做分支导流,每层的分支可以导出部分的流量,继而顺利导出所有的流量。

总体思路:优化代码,分离业务逻辑,数据库,最后加服务器等;

逐步解决方案,具体操作如下:

(1).页面的动静分离:

页面生成了静态的缓存,页面中的图片、JS等静态资源推CDN;

动态数据,能做缓存的做缓存(redis,memache);不能做缓存的,开始从代码层面下着手;

(2).代码层面的优化:

找到执行时间较长的脚本,着手分析,是否可以优化业务逻辑;

如果业务逻辑已经无法优化,考虑是不是数据库操作执行时间较长,如果是,开始从数据库层面着手;

(3).数据库层面的优化:

找到操作频繁,看是够能够优化sql语句,如连表查询等等;

如果还是到不到要求,对于操作频繁且数据库操作较大的数据,进行读写分离;

如果速度还是达不到要求,考虑是不是单张数据表的问题了;

(4).数据表层面的优化:

如果是数据表中数据量过大,导致查询速度慢的:数据分片,横向切表;

如果是数据表查询数据过多,导致查询数据慢的,纵向切表,使热点数据和非热点数据分离;

如果速度还是没有到达要求,那么恭喜你,你已经成功的积累了相当的用户量了,加服务器吧,做负载均衡吧。

(5).升级硬件,加服务器,做负载均衡。

补充:

1.针对非及时响应的业务,可以做队列,进行延时处理,以便后期统一处理;例如可以委托中间件(就像老板请的秘书),性能提升体现在写入数据时锁表时间的节省;

2.针对临时的热点活动类型业务,为了防止崩溃,可是使用独立的服务器,避免由于活动服务器的崩溃而导致其他主要业务服务器的崩溃。

如果你也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:521479582

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

6.小号或者小白之类加群一律不给过,谢谢。

相关推荐