页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题描述

通过F5进行smartbi集群负载均衡配置,遇到如下情况:

现象一:登录smartbi不断出现会话超时现象;

现象二:负载均衡配置后,实际访问还是分发不均衡,相对集中分发到一个节点上,这会造成单节点压力过大的问题。

以上两种情况需要怎么调整?

smartbi会话保持机制说明

1、smartbi会话保持机制

(1)会话超时是中间件(Tomcat、weblogic、WebSphere等中间件)自身的机制决定的,smartbi为了防止用户未操作smartbi系统的情况下,相关会话不会被中间件(Tomcat、weblogic、WebSphere等中间件)断开,即不出现会话超时,我们的war包应用调用了浏览器的异步请求接口:当我们在浏览器中单独登陆smartbi,停留在smartbi的界面时,smartbi会自动每隔2分钟发起一次请求(请求的内容是noop.jsp),以此来保持会话。

只有在加载了smartbi的会话超时扩展包(autologout.ext)时,才会出现超时的情况,autologout.ext扩展包实现的阻断调用浏览器的异步请求接口发送noop.jsp请求,以实现在session-timeout设置的时间段未操作的时候,中间件(Tomcat、weblogic、WebSphere等中间件)断开相关请求。


(2)如果我们是通过集成相关代码,登录上了smartbi,却并未打开smartbi的任一资源或界面时,由于smartbi无法发起noop.jsp的请求,所以会话只能保持5分钟,5分钟后自动超时。此时再去打开smartbi的资源,便会出现会话超时,跳转到登录界面的情况。


      2、smartbi的会话保持原理

       smartbi的会话保持机制和其他应用一样都是遵循浏览器对于cookie持有机制的,浏览器cookie原理可以查看网上相关介绍文档 : https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

       通俗的来说cookie就是一段文本,它存储在客户端(通常来说是浏览器)。你可以把cookie当作一个map,里边是键值对,每个键值对有 过期时间、域、路径、脚本可否访问等描述信息;描述信息存储在客户端,客户端请求时,默认会带上cookie的名称和值,不会带描述信息,通过http请求报文header中的cookie项进行传输;服务器响应时,可以设置cookie信息,就在http响应报文的header中Set-Cookie项。

因cookie区分域,而不区分端口,也就是说,同一个ip下的多个端口下的cookie是共享的!更确切的说,请求是会带上同域下所有端口的cookie,但是返回时会覆盖,因此如果在同一个浏览器同时访问相同IP不同端口号的应用,就会引发会话混乱,导致系统无法正常使用。

       对于浏览器cookie更详细的原理说明也可通过网上的文档进一步了解:https://blog.csdn.net/wangjun5159/article/details/52312737


针对F5参考解决方案

 F5是硬件负载,当前文档涉及的解决方案是日常项目遇到,由客户方和F5厂商沟通获取到的,可做同类型问题参考。

 1、以F5做smartbi集群负载均衡,需要配置cookie会话保持。

 

2、如果已经配置cookie会话保持了,还是会不定时出现会话超时,可进一步参考网上解决方案:https://blog.csdn.net/zhangxm_qz/article/details/125694733


Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节

  • 无标签