要点:在所有受支持的平台上都提供了基于内容的路由 (CBR) 组件,但下列情况例外:
或者,对于此类型的安装,您可以使用负载均衡器的分派器组件的 cbr 转发方法来为 HTTP 或 HTTPS 请求提供基于内容的路由,而不必使用高速缓存代理。有关更多信息,请参阅 WebSphere® Application Server 负载均衡器管理指南。
负载均衡器 IPv4 和 IPv6 版仅支持分派器组件的 mac 转发方法。nat 和 cbr 转发方法不受支持。
通过与 Application Server 高速缓存代理组件配合运行,Application Server 负载均衡器组件使您能够将请求分配到容纳不同内容的多个后端服务器。(有关这些 Edge Components 的介绍,请参阅介绍 WebSphere Application Server Edge Components。)
如果负载均衡器的基于内容的路由 (CBR) 组件与高速缓存代理安装在一起,那么可以根据 URL 或其他由管理员确定的特征来分配 HTTP 请求,以便不需要在所有后端服务器上都存储相同的内容。
如果 Web 服务器需要执行多个不同功能或提供多种类型的服务,那么尤其适合于使用 CBR。例如,在线零售商的 Web 站点必须显示其目录(大部分是静态的)并接受订单,这意味着运行交互式应用程序(如公共网关接口 (CGI) 脚本)来接受商品号和客户信息。使用两组不同的机器来执行不同的功能并使用 CBR 将不同类型的流量路由至不同机器通常效率更高。类似地,企业可以使用 CBR 将已付款的请求路由至功能更强大的 Web 服务器来对付款客户提供比其 Web 站点的偶然访问者更好的服务。
CBR 根据您编写的规则对请求进行路由。最常用的类型是内容规则,它根据 URL 中的路径名对请求进行定向。例如,ABC 公司可以编写规则以将对 URL http://www.abc.com/catalog_index.html 的请求定向至一个服务器集群,而将对 http://www.abc.com/orders.html 的请求定向至另一个集群。还有一些规则,它们根据发送请求的客户机的 IP 地址或根据其他特征来路由请求。有关论述,请参阅 WebSphere Application Server 负载均衡器 Administration Guide 中关于配置 CBR 以及关于高级负载均衡器和 CBR 功能的章节。要了解规则的语法定义,请参阅关于 CBR 规则类型的 WebSphere Application Server 负载均衡器 Administration Guide 附录。
图 12 描绘了一个简单的配置,其中负载均衡器的 CBR 组件和高速缓存代理一起安装在标记为 4 的机器上,并且将请求路由至容纳不同内容的三台内容主机( 6、7 和 8)。当使用标记为 1 的某台机器的最终用户请求文件 X 时,此请求将经过因特网 (2) 并通过企业的内部网关 (3) 进入企业的内部网络。代理服务器截取此请求并将其传递到同一机器上的 CBR 组件,该组件对请求中的 URL 进行解析并确定内容主机 6 容纳文件 X。代理服务器生成对文件 X 的新请求,如果启用了其高速缓存功能,那么它在主机 6 返回该文件时确定该文件是否能够高速缓存。如果该文件可以高速缓存,那么代理服务器在将它传递给最终用户之前会在其高速缓存 (5) 中存储一个副本。其他文件的路由方式相同:对文件 Y 的请求将转至内容主机 7,对文件 Z 的请求将转至内容主机 8。
图注:1 — 客户机 2 — 因特网 3 — 路由器/网关 4 —高速缓存代理和负载均衡器的 CBR 组件 5 — 高速缓存 6、7 和 8 — 内容主机图 13 描绘了一个更复杂的配置,它可能适合于在线零售商。负载均衡器的 CBR 组件和代理服务器一起安装在标记为 4 的机器上,并且将请求路由至两台负载均衡器机器。标记为 6 的负载均衡器机器对内容主机 (8)(它们容纳零售商的目录内容(大部分是静态的))的集群执行负载均衡,而标记为 7 的负载均衡器对处理订单的 Web 服务器 (9) 的集群执行负载均衡。
当使用标记为 1 的某台机器的最终用户访问零售商的目录的 URL 时,此请求将经过因特网 (2) 并通过企业的内部网关 (3) 进入企业的内部网络。代理服务器截取此请求并将其传递到同一机器上的 CBR 组件,该组件对 URL 进行解析并确定标记为 6 的负载均衡器机器处理该 URL。代理服务器创建一个新的访问请求并将其发送到负载均衡器,然后由它确定标记为 8 的内容主机中哪个主机当前最适合为此请求提供服务(根据您定义的条件)。该内容主机绕过负载均衡器将目录内容直接传递到代理服务器。与上述示例一样,代理服务器确定内容是否可以高速缓存并在合适时将其存储在其高速缓存 (5) 中。
最终用户通过访问零售商的订购 URL(估计是通过目录中的超链接进行访问)下订单。此请求将遍历与目录访问请求相同的路径,只是机器 4 上的 CBR 组件会将此请求路由至标记为 7 的负载均衡器机器。负载均衡器将此请求转发到标记为 9 的 Web 服务器中最合适的一个 Web 服务器,该 Web 服务器将直接应答代理服务器。因为通常会以动态方式生成订购信息,所以代理服务器可能不会对它进行高速缓存。
图注:1 — 客户机 2 — 因特网 3 — 路由器/网关 4 —高速缓存代理和负载均衡器的 CBR 组件 5 — 高速缓存 6 和 7 — 负载均衡器 8 — 内容主机 9 — Web 服务器负载均衡器的 CBR 功能支持 cookie 亲缘关系。这意味着为最终用户的第一个请求提供服务的服务器的标识将记录在服务器的响应中包含的一个特殊数据包 (一个 cookie) 中。当最终用户在您定义的一段时间内再次访问同一 URL,并且请求中包含该 cookie 时,CBR 会将此请求路由至原始服务器,而不是重新应用其标准规则。如果服务器存储了关于最终用户的信息(如信用卡号)从而不必再次获取该信息,那么这通常会减少响应时间。