java秒杀高并发解决方案(JAVA高级开发-闲扯网站高并发)
首先我们猜测一下网站在高并发通常是那一部分出问题,就像桶子装水,短板决定着能装的水量个人看法最容易出问题的地方是磁盘的IO,磁盘访问速度还是相对较慢的,每秒钟可以读写的数据有限如果你每次访问网站都要读取磁盘的话,如果访问人数多起来,那么越来越多的用户就要等待其他用户在磁盘读取完所需的数据,等待的人越来越多,后面的用户由于等待时间过长就会出现504网关超时(大哭了),下面我们就来说一说关于java秒杀高并发解决方案?我们一起去了解并探讨一下这个问题吧!
java秒杀高并发解决方案
IO短板首先我们猜测一下网站在高并发通常是那一部分出问题,就像桶子装水,短板决定着能装的水量。个人看法最容易出问题的地方是磁盘的IO,磁盘访问速度还是相对较慢的,每秒钟可以读写的数据有限。如果你每次访问网站都要读取磁盘的话,如果访问人数多起来,那么越来越多的用户就要等待其他用户在磁盘读取完所需的数据,等待的人越来越多,后面的用户由于等待时间过长就会出现504网关超时(大哭了)。
既然说磁盘是最有可能出现问题的地方,我们就要针对这个做一些特殊处理。网站读写磁盘严重的地方有哪些呢?一般来说是数据库读写,上传文件保存,静态资源文件的读取。那么我们一一做一些优化,数据库优化其实是最重要的,很多网站性能问题其实出现在数据库身上。优化数据库第一个就是减少数据库读写啦,所以尽量不要在代码中来一个循环读取数据库(这真的是一个悲剧),能一条sql解决的就用一条(当然这不是绝对的)。第二个就是不读数据库好不好(其实就是代码缓存读取结果,数据一致性是一个问题)。第三个就是避免并发写入数据库,写入是避免不了的啦,我们做的就是错峰出行,这样子就能保证在每一个时间点空出资源做更多的事情。那文件保存,静态资源读取又该怎么办呢?你可以简单粗暴的土豪式作风独立一台静态资源服务器,独立文件服务器之后哪怕文件服务器慢,也不会影响主线业务正常访问,并且文件服务器慢了你可以上集群呢。没这么多资金怎么办,那么就要主动一些,告诉浏览器,这些文件访问一次之后你一段时间都不要过来问我哈(这事情要自己主动,如果浏览器不理你偏要访问我也没辙了)。一般来说我们的好朋友apache和nginx可以帮我们告诉浏览器要缓存一下静态资源(但是这事情我们要主动~配置一下,具体自己查阅文档了)。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com