
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高并发编程开发是目前大多数软件编程开发程序员都需要重点满足的一个编程开发需求,而本文我们就通过案例分析来简单了解一下,Java编程高并发编程开发基础知识分享。
一、什么是高并发
高并发指的是系统同时处理很多请求。
高并发的业务场景出现了,随之而来的就是要支持这个高并发业务场景的架构——技术要为业务服务,业务倒逼技术发展。
那到底多大并发才算高并发呢?
这个本身是没有具体标准的事情,只看数据是不行的,要结合具体的场景。不能说10WQPS的秒杀是高并发,而1WQPS的信息流就不是高并发。信息流场景涉及复杂的推荐模型和各种人工策略,它的业务逻辑可能比秒杀场景复杂10倍不止。业务场景不一样,执行复杂度不一样,单看并发量也没有意义。
总结就是,高并发无定势,是要和具体的业务场景相结合的。无高并发场景,无高并发架构。
二、高并发目标
高并发绝不意味着只追求高性能。从宏观角度看,高并发系统设计的目标有三个:高性能、高可用,以及高可扩展。就是所谓的“三高”,三高不是孤立的,而是相互支撑的。
1、高性能:性能体现了系统的并行处理能力,在有限的硬件投入下,提高性能意味着节省成本。同时,性能也反映了用户体验,响应时间分别是100毫秒和1秒,给用户的感受是完全不同的。
2、高可用:表示系统可以正常服务的时间。一个全年不停机、无故障;另一个隔三差五出线上事故、宕机,用户肯定选择前者。另外,如果系统只能做到90%可用,也会大大拖累业务。
3、高扩展:表示系统的扩展能力,流量高峰时能否在短时间内完成扩容,更平稳地承接峰值流量,比如双11活动、明星离婚等热点事件。
这3个目标是需要通盘考虑的,因为它们互相关联、甚至也会相互影响。
比如说:考虑系统的扩展能力,你需要将服务设计成无状态的,这种集群设计保证了高扩展性,其实也间接提升了系统的性能和可用性。
再比如说:为了保证可用性,通常会对服务接口进行超时设置,以防大量线程阻塞在慢请求上造成系统雪崩,那超时时间设置成多少合理呢?一般,我们会参考依赖服务的性能表现进行设置。
三、性能指标
性能指标通过性能指标可以度量目前存在的性能问题,也是高并发主要关注的指标,性能和流量方面常用的一些指标有
QPS/TPS/HPS:QPS是每秒查询数,TPS是每秒事务数,HPS是每秒HTTP请求数。常用的指标是QPS。
需要注意的是,并发数和QPS是不同的概念,并发数是指系统同时能处理的请求数量,反应了系统的负载能力。
RPS(吞吐量):单位时间内处理的请求量,通常由QPS和并发数决定。
通常,设定性能目标时会兼顾吞吐量和响应时间,比如这样表述:在每秒1万次请求下,AVG控制在50ms以下,TP99控制在100ms以下。对于高并发系统,AVG和TP分位值必须同时要考虑。
另外,从用户体验角度来看,200毫秒被认为是一个分界点,用户感觉不到延迟,1秒是二个分界点,用户能感受到延迟,但是可以接受。
因此,对于一个健康的高并发系统,TP99应该控制在200毫秒以内,TP999或者TP9999应该控制在1秒以内。
PV:综合浏览量,即页面浏览量或者点击量,一个访客在24小时内访问的页面数量。
UV:独立访客,即一定时间范围内相同访客多次访问网站,只计算为一个独立的访客。
带宽:计算带宽大小需要关注两个指标,峰值流量和页面的平均大小。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。