互联网如何实现高并发
互联网实现高并发,那我们来逐步讨论一下:
1、什么是高并发?
高并发是系统同时并行处理多个请求
2、高并发的几个指标?
响应时间:系统对请求作出响应的时间
吞吐量:单位时间内处理的请求数
QPS:每秒响应请求数
并发用户数:系统同时在线用户数
3、如何提高系统并发能力?
垂直扩展:单机硬件性能、CPU、内存、网卡、使用异步、单机缓存、无锁数据结构
水平扩展:系统架构设计
客户端->反向代理->站点应用层->服务层->数据层(缓存|数据库)
各个层次的水平扩展
反向代理:DNS轮询
站点层:nginx负载均衡
服务层:服务连接池 站点层通过RPC-client调用下游RPC-server
数据层:缓存|数据库水平拆分(按范围|哈希拆分)
主要区别是,性质不同、目的不同、特点不同,具体如下:
一、性质不同
1、压力测试
压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。
2、负载测试
负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
3、并发测试
指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
二、目的不同
1、压力测试
目的是在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。
2、负载测试
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
3、并发测试
测试目的并非为了获得性能指标,而是为了发现并发引起的问题。
三、特点不同
1、压力测试
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
2、负载测试
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
3、并发测试
在具体的性能测试工作中,并发用户往往都是借助工具来模拟的,例如LoadRunner性能测试工具中叫做虚拟用户,因为实际情况中去实现同时多人并发的测试环境要求比较高而测试成本高、测试时间也是比较长。
百度百科-压力测试
百度百科-负载测试
百度百科-并发测试
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!