通过smartbi proxy实现smartbi集群的负载均衡,提高smartbi的可用性。

1、环境准备

IP地址主机名角色
192.168.137.110smartbi-1smartbi 集群节点1
192.168.137.111smartbi-2smartbi 集群节点2
192.168.137.112proxysmartbi-proxy 负载均衡

安装包列表:

服务软件包备注
smartbismartbi.warsmartbi
JDKjdk1.8.0_181-linux_x64.tar.gzJDK
tomcatapache-tomcat-8.5.51.tar.gzTomcat安装包
smartbi proxy

smartbi.war

ProxyClient.ext

smartbi proxy程序安装包

smartbi proxy 扩展包,部署smartbi集群时需要


2、部署Smartbi

smartbi-1和smartbi-2两台服务器节点,参考 Linux Tomcat部署Smartbi 部署好Smartbi,并配置好License,知识库相关信息,能正常访问smartbi。

3、部署Smartbi Proxy

smartbi-proxy代理部署参考Linux Tomcat部署Smartbi-Proxy ,能正常访问Proxy首页。

4、配置Smartbi集群

4.1 上传Proxy扩展包,配置代理地址

所有smartbi节点均需上传proxy扩展包和 配置代理地址

①浏览器访问所有smartbi节点的config页面:http://IP:端口/smartbi/vision/config ,找到【扩展包】选项,配置扩展包路径,如果已设置则忽略,如下图:


②点击选择 选择ProxyClient.ext扩展包,上传,上传完成后需要重启smartbi,使扩展包生效。


③smartbi重启完成后,重新登录smartbi config页面,滚动到页面底部,会有【代理服务】选项(如果没有显示,则需要清理浏览器缓存,并刷新页面),配置代理服务器地址和代理服务器登录账号密码,如下图:

配置完成,保存即可,无需重启smartbi。

4.2 Smartbi设置集群配置

分别访问Smartbi节点的conf页面(即 http://IP:Port/smartbi/vision/config.jsp),设置集群配置,参考以下配置方法。

集群节点smartbi-1主机:

服务器地址列表:192.168.137.110:40000,192.168.137.111:40000
其中:192.168.137.110 是 smartbi-1 服务的物理机IP地址;
        192.168.137.111 是 smartbi-2 服务的物理机IP地址;
端口40000是smartbi集群内部通信的端口,远程端口:40001,用于远程连接其他smartbi服务器缓存共享的端口,备用监听端口增值填写100,设置完成保存,并重启Smartbi。

使用手动模式时,部署smartbi集群的各个节点,网络必须是互相连通的。

如果smartbi服务器关闭防火墙,则无需设置远程访问端口和备用监听端口增值;如果smartbi服务器开启防火墙,则需要开放对应的端口:40000,40001,40100,40101  端口说明以及开放防火墙操作:

40000:集群监听端口;            40100:集群备用监听端口

40001:集群远程访问端口;     40101:集群远程访问备用端口

firewall-cmd --permanent --add-port=40000/tcp

firewall-cmd --permanent --add-port=40100/tcp

firewall-cmd --permanent --add-port=40001/tcp

firewall-cmd --permanent --add-port=40101/tcp

firewall-cmd --reload

备用端口增值100,是指集群监听端口40000和远程访问40001端口分别自增100,即集群备用监听端口40100和集群备用访问端口40101。备用端口增值可自行定义,但需要开放对应的备用端口。

集群节点smartbi-2主机:

服务器地址列表:192.168.137.110:40000,192.168.137.111:40000
其中:192.168.137.110 是 smartbi-1 服务的物理机IP地址;
        192.168.137.111 是 smartbi-2 服务的物理机IP地址;
端口40000是smartbi集群内部通信的端口,远程端口:40001,用于远程连接其他smartbi服务器缓存共享的端口,备用监听端口增值填写100,设置完成保存,并重启Smartbi。

使用手动模式时,部署smartbi集群的各个节点,网络必须是互相连通的。

如果smartbi服务器关闭防火墙,则无需设置远程访问端口和备用监听端口增值;如果smartbi服务器开启防火墙,则需要开放对应的端口:40000,40001,40100,40101  端口说明以及开放防火墙操作:

40000:集群监听端口;            40100:集群备用监听端口

40001:集群远程访问端口;     40101:集群远程访问备用端口

firewall-cmd --permanent --add-port=40000/tcp

firewall-cmd --permanent --add-port=40100/tcp

firewall-cmd --permanent --add-port=40001/tcp

firewall-cmd --permanent --add-port=40101/tcp

firewall-cmd --reload

备用端口增值100,是指集群监听端口40000和远程访问40001端口分别自增100,即集群备用监听端口40100和集群备用访问端口40101,备用端口增值可自行修改,但需要开放对应的备用端口。

配置集群方式说明
手动模式手动填写ip地址,一起配置集群,对于所填ip地址,需保证两个节点的网络必须是连通的。
自动模式

自动模式实际上是广播模式,要求同网段才能收到广播,如需测试现场环境能不能使用自动模式来配置smartbi集群可参考如下文档:

分组广播测试

5、验证Smartbi集群

1、分别访问两个smartbi系统监控页面,查看缓存
smartbi-1服务:
http://IP:PORT/smartbi/vision/sysmonitor.jsp

smartbi-2服务:
http://IP:PORT/smartbi/vision/sysmonitor.jsp

系统监控缓存页面中peers如图所示,即表示集群配置成功

2、可通过在任意一台smartbi服务器中创建文件目录,在其他smartbi服务器上刷新查看是否实时同步,如果同步,则smartbi集群部署成功。

6、验证Smartbi负载均衡

1、浏览器打开 http://IP:8080/smartbi/proxy#/login 访问Smartbi Proxy,首页会显示所有Smartbi的状态相关信息。


2、使用Proxy地址访问smartbi

即 http://ProxyIP:PORT/smartbi/   可正常代理到后端的任意一台Smartbi。



Smartbi集群部署完成。

常见问题

1.Tomcat8.x部署注意事项

1、提升smartbi启动速度

注:Tomcat 如果是8.0版本,需要修改smartbi.war包中WEB-INF目录下面的web.xml文件,具体修改方法见下图。

需要添加这个配置的原因是:

1、JSP/Servlet 3.0 规范中,如果没有指定metadata-complete=true参数,则会在启动过程中扫描整个war包中所有jar类中是否包含@Servlet等相应的注解,旧版本是需要在web.xml中指定(比如原先创建一个servlet,我们都需要在web.xml中添加对应的Servlet的入口)。

2、这样会导致启动的过程非常缓慢,可能耗时半小时以上。

3、添加这两个属性(metadata-complete="true",<absolute-ordering />)可以指定不再进行相应的扫描,从而提高Smartbi启动速度。 


2、取消Tocamt上传大小限制

Tomcat8.x默认上传文件大小(maxPostSize)限制为2M,如果需要取消maxPostSize限制,需要将maxPostSize的值设置为负数:

vi  <Tomcat8.x目录>/conf/server.xml 

添加 maxPostSize="-1"

配置参考下图:

重启Tomcat,使其生效。