1. 概述
1.1 问题描述
目前集群功能中一些常用的参数,配置时需要手动向数据库中增加或修改字段,存在以下两个问题:
用户不知道什么情况下去配置这些参数,以及这些参数的意义。
修改数据库中的字段存在一定的操作成本。
1.2 解决方案
对于常用的集群参数,FineBI 开放平台配置,用户可自行实现配置,目前允许配置:
Redis存储key前缀
内部转发参数
2. 配置介绍
用户在 平台配置集群 后,以管理员身份登录平台,点击「管理系统>智能运维>集群配置」,在参数配置页面中,可对「Redis存储key前缀」参数和「内部转发参数」进行配置。
对参数进行配置时,鼠标移到配置项文本框后面,会有个提示图标,点击后提示字符要求。如下图所示:
2.1 Redis存储key前缀
当使用的 Redis 服务器属于公用服务,也被其他工程所使用时。为了避免多套工程的 key 存在冲突,我们需要给不同的工程自定义其存储在 Redis 中的 key 前缀。
配置并重启工程后,我们可以从 redis 中查询到新的前缀的 key 值,查询方法见:Linux 系统 Redis 运维手册
配置项 | 默认配置 | 字符要求 |
---|---|---|
key前缀 | __fine_state_key_43e1b2fe42__ | 英文大小写、阿拉伯数字、下划线 |
修改「key前缀」后,点击右侧「保存」按钮,前端弹窗提醒用户:参数设置已修改,请重启各节点工程以生效,如下图所示:
2.2 内部转发参数
2.2.1 原理说明
我们通常给负载均衡配置轮询的转发策略,负载均衡不会判断某个请求的节点归属情况,会将请求按照轮询的策略转发给各个节点。
当节点收到不属于自己的请求时,会内部转发该请求给对应的节点处理,请求处理完成后再原路返回。
基于这个逻辑,当一个节点异常时无法对内部转发过来的请求进行响应,负载均衡可能会对正常的节点进行误判,也有可能导致此请求迟迟无法返回且前端无报错。
为了避免单节点宕机导致集群不可用的情况发生,增加了对节点间转发的请求的健康检查,可以对异常节点进行限制并能够前端提醒。
当节点服务器拒绝连接时,报错:41300002服务器拒绝了此次连接,报错页面如下图所示:
当集群节点间转发耗时超过了设定的超时时间时,报错:41300001服务器服务响应时间过长,报错页面如下图所示:
2.2.2 配置说明
配置项 | 默认配置 | 单位 | 填写要求 | 含义 |
---|---|---|---|---|
超时时间 | 90 | 秒 | 不小于 10 的整数 | 读写超时的时间,如果在超时时间内服务器未返回或收到任何数据,视为超时。如果有些报表计算或者导出时后端需要花费几分钟甚至更多,则需要设置长一点 对应 nginx 中的参数为 proxy_read_timeout 和 proxy_send_timeout,这两个参数值要大于平台配置的超时时间 |
尝试次数 | 8 | 次 | 正整数 | 单个周期内最大尝试的次数,此参数须≥1次,最大尝试失败次数 n 对应 nginx 中的参数为 max_fails ,建议大于或等于平台配置的尝试次数 |
失效时间 | 90 | 秒 | 不小于 10 的整数 | 在单个失效时间内,失败请求超过最大尝试次数后,节点会被置为失效,新的请求将不会内部转发给该节点 对应 nginx中 的参数为 fail_timeout ,建议大于或等于平台配置的值 |
修改「内部转发参数」后,点击右侧保存按钮,前端弹窗提醒用户:参数设置已修改,请重启各节点工程以生效,如下图所示: