当大量“客户”同时访问一个“服务器”时,“服务器”面临的是大并发访问的技术和架构问题。大并发访问的等级可以分为“超出连接”、“超出时限”和“超出应用负载”三种。
2.1超出连接
当客户的连接超出数据库的连接数或并发处理能力,当时没有超出服务器的瞬间处理能力,可以采用“访问队列”进行排队。提高用户体验。
比如,数据库的并行处理是10访问请求,“瞬间处理能力”为2秒中内处理1000个请求。当最大并发客户访问请求是1000个,如果不加队列,将有1000-10=990个客户请求失败。如果应用“访问队列”,在不到2秒的瞬间,数据库处理完毕这1000个访问请求。全部客户体验良好。
所以,当并发量超出并发处理能力,而在瞬间处理范围内时,“访问队列服务”是有效的方法。
2.2超出时限
同样是并行处理能力是10个访问,2秒可以处理1000个请求,当最大并发客户访问请求是10000个时,会出现等待10秒到20秒的请求。设客户端可以容许的超时为4秒。则需要新的手段提高服务器的瞬间处理能力。
由于数据库系统的并行处理能力比较低,相同的运算在数据库系统中比在操作系统中要慢。所以将可以分离出的运算程序由数据库移出,在“访问队列服务”层执行,将会大大提供整个服务器的处理能力。
承担了访问队列管理和一部分业务运算功能的中间服务,称为“应用服务”。
2.3超出应用负载
如果承担了大量的业务运算功能的“应用服务”的处理能力成为系统效率的瓶颈,即队列压力超出“应用服务”的处理能力,则需要将“应用服务”进行扩展。
扩展的方法是在不同的设备上同时启动应用服务,形成一个“应用服务群”,多个服务分担业务处理请求,并保证每个“应用服务”有充足的系统资源。