本文介绍了在金蝶云星空部署多应用服务器环境中,如何使用HAProxy+KeepAlived实现负载均衡,并确保轻分析服务仅在一台固定服务器上运行的配置方法。文中详细说明了配置步骤,包括修改配置文件、防火墙设置、HAProxy配置及外网端口映射等,并提供了常见问题解答,如轻分析报表访问错误的处理方法。
一、场景说明
因现场需要,金蝶云星空部署了多个应用服务器,并使用HAProxy+KeepAlived实现应用服务器负载均衡。
服务器 | 分配IP | 备注 |
应用服务器1 | 192.168.40.45 | 兼做轻分析 |
应用服务器2 | 192.168.40.46 | |
负载均衡器1(HAProxy) | 192.168.40.41 | 共享VIP192.168.40.40 (使用KeepAlived实现) |
负载均衡器2(HAProxy) | 192.168.40.42 |
应用服务器安装时,每台服务器实际上都带有轻分析站点,但是轻分析自身不支持多服务器(单一轻分析服务器足够),怎么确保轻分析始终使用固定的服务器并且正常工作呢,本文将详细说明。
本文编写之初,学习了https://vip.kingdee.com/article/249253293833336832 ,并在其上做进一步完善的说明。
二、配置指南
1、在各个应用服务器上,打开"安装目录\K3Cloud\WebSite\App_Data\Common.config",搜索找到
将其中的 Localhost 改成各服务器真实IP地址(每个服务器分别改,不是一个服务器上2行),本示例修改后如下:
修改后保存文件。
2、Windows防火墙放行1800端口。
3、两个负载均衡器上,修改HAProxy配置文件 /etc/haproxy/haproxy.cfg 增加以下配置并保存文件。
listen k3cloud-qfx bind *:1800 server qfx 192.168.40.45:1800
4、两个负载均衡器上,防火墙放行1800端口。
firewall-cmd --permanent --add-port=1800/tcp firewall-cmd --reload
5、轻分析设置所有设置保持为空即可,使用http://192.168.40.40/K3Cloud登录访问,可正常使用轻分析。
6、如果外网要使用星空和轻分析,需要做下端口映射,外网80->负载均衡器80,外网1800->负载均衡器1800。
三、常见问题
问1、有多个应用服务器,但是没有使用负载均衡器。
答1、应用服务器按以上步骤修改不变,轻分析设置需要填写轻分析服务器地址。
问2、按上述配置【轻分析】可以正常打开,但是打开具体的报表或看板时提示“数据源发生错误”,显示详细错误日志提示“错误码2101009 com.kingdee.bos.qing.data.exception.file.FileSourceFileNotFoundException: upload\72bffddc-e0d7-4d44-9e49-9b41fed6bbe4”
答2、此错误原因一般是用户第一次访问的轻分析服务器不是现在这个服务器(比如示例中46上也有轻分析,用户初次访问的是46上的轻分析),可在"安装目录\K3Cloud\QingSite\QingStorage\"下搜索报错里面“upload\”后的文件名确认。
解决办法是在数据中心对应的数据库清理记录,然后用户打开轻分析重新初始化,参考SQL如下:
DELETE FROM t_qing_theme_sys_pkg_state WHERE FUSERID IN ( SELECT FUSERID FROM T_SEC_USER WHERE FNAME IN ('异常用户名1','异常用户名2'))