相比论坛很多会员都已经知道了IBM Cognos BI的服务器架构和负载均衡原理,并且有实战经验。其实Cognos服务器的架构模式并不是固定的,根据企业环境、客户要求不同而异。在Cognos官方文档里主要介绍了2中最原始的架构方法,下面就分享一下信息并欢迎一起讨论。
1、cognos内置集群与负载均衡模式
Dispatcher,即分派器,它负载接受来自网关的请求,分发任务给相应的services处理,如reportservice。同时,当负载超重导致【分派器1】无法处理时,它将任务分发给其它第一个可用的【分派器2】,然后【分派器2】再将任务分发给附带的services处理;若【分派器2】负载超额,则【分派器1】再将任务分发给分派器3,依次类推。。。
很多时候我们采用了这种模式设计cognos服务器,根据官方介绍,我们改良上述模式:在webserver、gateway所在的服务器也安装了dispatch,即安装application tier+gateway+webserver。如下图所示,
从图中的模式可以显然看出,方案2显然比方案1的处理效率提高了很多,比如网关就不必跨服务器发送请求,而是直接通过本服务器的分派器分发处理。经过我实践验证,把模式2的【分派器1】上所有service关闭不启用(展示服务presentation service除外),解决了很多项目问题(项目机密,恕不详述)。当然也有它不足之处,如 需要安装多个gateway+dispatcher+webserver,而且用户访问的入口路径不统一,因而就需要借助外部均衡机制了。
2、外部集群与负载均衡模式
同时亦可借助外部机制将cognos的分派器集群与负载均衡请求,如websphere、硬件(负载均衡器硬件非常昂贵,一般上百万)。外部机制的原理就是先给服务器做cluster,并设置权重,同时须关闭cognos内置的负载均衡机制(修改负载模式为 ‘集群兼容’).如下图
比较常用的是WebSphere+IHS,可以集群dispatcher然后协同gateway工作;若为了统一用户访问路径同时有需要分发请求到各自服务器,则建议直接集群(clust)多个gatway,然后Apache HTTP Server直接访问集群的gateway。
以上是个人见解,并非教材,篇幅有限,鄙人抛砖引玉,欢迎一起来讨论发表您宝贵的看法 :)。