管理状态技术
多台机器伸缩技术依靠使用应用程序服务器的多个副本;来自各种客户机的多个连续请求可以由不同的服务器服务。如果每个客户机请求完全独立于所有其他的客户机请求,那么它不关心连续的请求是否是在同一台服务器上处理的。但是,实际上客户机请求不是独立的。客户机经常发出请求,等待结果,然后根据从先前请求中接收到的结果发出一个或多个后续请求。
这个操作顺序代表客户机分成了两个类别:
- 无状态
- 服务器只根据每个请求提供的信息来处理请求,而不考虑先前请求中的信息。服务器不需要维护请求之间的状态信息。
- 有状态
- 服务器根据每个请求提供的信息和先前请求存储的信息处理请求。服务器需要访问和维护处理先前的请求期间生成的状态信息。
对于无状态交互作用,它不关心不同的请求是否是由不同的服务器处理的。但是,对于有状态的交互作用,处理请求的服务器就需要访问服务该请求必需的状态信息。同一台服务器可以处理与相同的状态信息关联的所有请求,或者状态信息可以由需要它的所有服务器共享。在后一种情况下,访问同一台服务器的共享状态信息最小化与访问来自多台服务器的共享状态信息关联的处理开销。
本产品中的负载分发设施使用若干不同的技术来维护客户机请求之间的状态信息:
- 会话亲缘关系,其中负载分发设施识别存在的客户机会话并试图将该会话内的所有请求导向到同一台服务器上。
- 事务亲缘关系,其中负载分发设施识别存在的事务并试图将该事务作用域内的所有请求导向到同一台服务器上。
- 服务器亲缘关系,其中负载分布工具识别尽管给定的客户机请求可以被多台服务器接受,但一台特殊的服务器最适合处理该请求。
在将客户机请求导向应用程序服务器的集群成员时,作为每个应用程序服务器的一部分的会话管理器存储客户机会话信息并考虑会话亲缘关系和服务器亲缘关系。在将客户机请求导向应用程序服务器的集群成员时,工作负载管理服务考虑服务器亲缘关系和事务亲缘关系。