【请尊重原创,转载请标明出处。。。。。。】
【更多资讯及资料获取,关注微信公众号号:浅醉JAVA】
首先了解:多线程和并发之间是怎么一种关系?
高并发是多线程执行效率的外在表现。
多线程执行效率是高并发的本质所在。
高并发概念
高并发就是: 快速安全处理大量请求。
三部分:快速 安全 处理大量请求 。 其中 快速/安全 是手段; 处理大量请求 既是目的,又是手段结果的表现。
高并发编程: 就是提高服务器在某一段时间内的线程处理量,最终目的是降低多线程处理请求的时间。
通过对“ 快速安全处理大量请求”的分析,发现,要是先高并发,数显要解决实现前两个部分: 快速 和 安全。
下面将分类对其进行方案划分。
快速
快速---->则要求处理每个请求的时间尽量短。
方法:四层处理方案。
视图层:
1 页面资源静态化,静态资源加速(CDN加速)
---》减少服务器压力,提高响应速度(静态页面:页面压缩/缓存机制/网址隐藏/CDN)(静态资源不需要访问服务器,动态数据通过ajax异步进行请求)
服务层:
2 服务集群+负载均衡
---》降低服务器单线程的压力,提高接收请求数量,同时保证服务的高可用
3 服务的降级
---》抛弃非必要服务,提高处理和响应速度(高峰时进行服务降级:比如促销活动)
4 耗时服务异步操作、多线程处理
---》减少服务耗时,提高处理速度(使用Redis缓存数据:网站内容/热门商品缓存,中间件等)
5 服务逻辑优化
---》比如:下订单,先插入订单,在修改商品库存。可减少加锁时间。
数据操作层:
6 数据库优化(SQL优化、使用存储过程等)
---》减少数据操作耗时
7 数据有效性校验转移至客户端
---》减少不合法数据对服务器的请求
其他:
8 其他:服务器调优(JVM调优)、 硬件升级、 宽带提速等
安全
安全---->包括:服务安全和数据操作安全。
服务安全:集群+负载均衡+熔断+资源隔离 (防止:雪崩效应)
保证服务高可用,至于崩溃宕机。 请求隔离(线程隔离 信号量隔离)---》保证服务的安全
数据操作安全:比如一致性等,事务性操作。
总结
快速安全处理大量请求。
高并发的概念就是在保证数据安全的情况下,减少进程所需操作的时间。(即:快速安全)
比如: 页面访问服务器后,让服务器去修改数据库,如果你的数据库优化做的到位,那么查找数据并返回给客户端的时间将大大减少。对于一个热门网站的查询量是非常大的,然后一个服务器内存可以接收的线程数量也是有限的。
如果单个请求处理时间越少,在某一时间段内处理线程(访问请求)就越多,那么并发效率就越好。(即:处理大量请求)
【更多资讯及资料获取,关注微信公众号号:浅醉JAVA】
【请尊重原创,转载请标明出处。。。。。。】