最近看资料说线程消耗性能比较厉害,大量请求同时访问服务器时不可能给每个请求都建立一个线程,那当有海量请求过来时服务器怎么处理这么多的请求呢?解决这个问题的java主流技术是什么?
目前应对高并发最好的办法就是分布式:多线程只能在一定并发数内产生效益一旦这个值过大就会产生死锁甚至宕机,
分布式简单说来就是 原本1台服务器处理的内容变成10台 那么压力就除以了10
那么分布式需要处理的一个点就是数据同步或者采用数据分块
线程池 http://www.cnblogs.com/dolphin0520/p/3932921.html
“不可能给每个请求都建立一个线程”,,,,难道两个用户同时使用同一个线程,,
后台可以放上100个tomcat(每个tomcat能抗住200个线程同时访问),,200*100等于20000,同时能处理两万个访问
再对tomcat服务器优化,,能抗住500+,,,根据上面的东西,,就是五万个并发,,五万并发应该差不多了吧(不行再加服务器)
我并不十分精通,,许多东西只是见过,,,题主仅供参考,,图片截图自:http://coder520.com/courses/18
高并发等,简单的可以参考tomcat的线程池,还有Netty等用NIO+线程池
线程池肯定是要用的,但是系统资源也是有限的时候,设置系统能承受的线程数量,其它进来的请求全部拒绝返回系统繁忙