默认情况下,Sun Java System Application Server 负载平衡器使用粘性 round robin 算法对收到的 HTTP 和 HTTPS 请求进行负载平衡。
新的 HTTP 请求发送到负载平衡器插件时,系统将基于简单的 round robin 方案将该请求转发到某个应用服务器实例。如果请求用于基于会话的应用程序,则这还包括对新会话的请求。来自同一客户机的对同一基于会话的应用程序的后续请求被认为是已分配的请求或粘性请求,并由负载平衡器路由到同一实例。粘性 round robin 由此得名。对非基于会话的应用程序的请求和对基于会话的应用程序的第一个请求称为未分配的请求。粘性是通过使用 Cookie 或显式 URL 重写实现的。负载平衡器会自动确定粘性方法。
负载平衡器插件使用以下方法来确定会话粘性:
Cookie 方法:负载平衡器插件使用一个单独的 Cookie 来记录路由信息。HTTP 客户机(通常为 Web 浏览器)必须支持 Cookie 才能使用基于 Cookie 的方法。如果 HTTP 客户机无法接受 Cookie,则插件使用以下方法。
显式 URL 重写:粘性信息将被附加至 URL。即使 HTTP 客户机不支持 Cookie,也可以使用此方法。
从粘性信息中,负载平衡器插件将首先确定请求先前被转发到的实例。如果发现该实例工作正常,负载平衡器插件会将请求转发至该特定应用程序服务器实例。因此,给定会话的所有请求都将被发送到同一个应用程序服务器实例。