2018-09-15;解决高并发;
解决高并发有二种机制;
第一种:
使用缓存:
使用生成的静态页面:
还有就是最基础的地方优化我们写代码减少不必要资源浪费(
1.不要频繁new对象,对于整个应用中只需要存在一个实例的类使用单例模式,对于String的连接操作,使用StringBuffer或者StringBuilder,对于Utility类型的类通过静态方法来访问.
2.避免使用错误的方式,如Exception可以控制方法推出,但是Exception要保留stacktraec消耗性能,除非必要不要使用instanceof做条件判断,尽量使用比的条件判断方式,使用Java中高效率的类,比如ArrayList比Vector性能好);
);
缓存就是花钱买内存,我个人理解就是用户请求时将数据保存在缓存中,当下次在此请求就不再通过数据库,而是直接去内存的缓存中寻找数据,防止多次访问数据库,导致服务器性能降低,严重可能导致服务器崩溃,这是我个人的理解;
使用生成的静态页面,就好比京东,他们有很多的打折页面的尾缀都是.HTML;
给tmocat调优默认支持的并发量是100,把它改成250,最大是1000;
在用代码调用
验证码,用户体验差;
第一点 tmocat默认是100的并发量,建议把它设置250,最大支持1000,或者在使用 放个叫引(是
//坑扣瑞此hashMap
一个方法)还有 concurrentHashMap(保证了线程安全,又保证了效率,底层使用了分段锁实现的)
实在不行就 对服务器进行扩充,
搭集群,负载均衡;读写分离,集群多了话就要考虑线程安全,争抢资源,这是就要考虑加锁,分布式加锁的问题;