可伸缩网络服务的定义

可伸缩性(Scalability)是在当今计算机技术中经常用到的词汇。对于不同的人,可伸缩性有不同的含义。 现在,我们来定义可伸缩网络服务的含义。

可伸缩网络服务是指网络服务能随着用户数目的增长而扩展其性能,如在系统中增加服务器、内存或硬盘等;整个系统很容易被扩展,无需重新设置整个系统,无需中断服务。换句话说,系统管理员扩展系统的操作对最终用户是透明的,他们不会知道系统的改变。

可伸缩系统通常是高可用的系统。在部分硬件(如硬盘、服务器、子网络)和部分软件(如操作系统、服务进程)的失效情况下,系统可以继续提供服务,最终用户不会感知到整个服务的中断,除了正在失效点上处理请求的部分用户可能会收到服务处理失败,需要重新提交请求。Caching和复制是建立高可用系统的常用技术,建立多个副本会导致如何将原件的修改传播到多个副本上的问题。

实现可伸缩网络服务的方法一般是通过一对多的映射机制,将服务请求流分而治之(Divide and Conquer)到多个结点上处理。一对多的映射可以在很多层次上存在,如主机名上的DNS系统、网络层的TCP/IP、文件系统等。虚拟(Virtual)是描述一对多映射机制的词汇,将多个实体组成一个逻辑上的、虚拟的整体。例如,虚存(Virtual Memory)是现代操作系统中最典型的一对多映射机制,虚存建立一个虚拟内存空间,将它映射到多个物理内存上。