1. 概述
1.1 版本
FineBI服务器版本 | 功能变更 |
---|---|
6.0 | - |
1.2 问题描述
正式业务系统,往往白天工作时间进行业务查询,夜晚下班时间进行数据更新。
1)白天,若进行数据更新,不能占用查询的资源。
2)晚上,若有用户进行查询,不能占用更新的资源。
3)随着系统的使用时间变长,数据更新会越来越慢,需要通过清理冗余资源。
1.3 方案说明
帆软提供节点读写分离方案。
读:节点为查询节点,主要承担查询转发功能
写:节点为更新节点,主要承担数据抽取更新任务
是否开启读写分离 | 时间段 | 配置节点类型 | 效果 |
---|---|---|---|
关闭(无需配置或参考下文配置) 在finedb的fine_conf_entity表中,添加字段和字段值 字段:SystemOptimizationConfig.readWriteSeparation 值:false | - | - | 读写不分离 所有节点既可能承担查询角色,又可能承担更新角色 |
开启(必须手动配置) 在finedb的fine_conf_entity表中,添加字段和字段值 字段:SystemOptimizationConfig.readWriteSeparation 值:true | 白天(即下文除夜晚以外的时间段) | 配置查询节点(无需配置或参考下文配置) 在%BI_HOME%\webapps\webroot\WEB-INF\config目录下的spider.cluster.properties文件中添加配置 open_spider_update=false | 配置了的节点为查询节点(都没配置的话,所有节点都默认为查询节点) 白天,查询节点只查询,不更新 |
配置更新节点(必须手动配置) 在%BI_HOME%\webapps\webroot\WEB-INF\config目录下的spider.cluster.properties文件中添加配置 open_spider_update=true | 配置了的节点为更新节点 白天,更新节点只更新,不查询 | ||
夜晚(默认值为21:00-09:00,如需自定义可参考下文配置) 在finedb的fine_conf_entity表中,添加字段和字段值 字段:DistributedOptimizationConfig.spiderConfig.spider_high_performance_resource_time 值:XX:XX-XX:XX 注意,格式必须完全符合,例如九点,必须写作09:00,而非9:00 | - | 开启读写分离之后,在晚间时段,作为高性能时段,所有节点都为更新节点 夜晚,节点既更新又查询,优先更新 |
2. 示例
本文示例:
三节点抽取集群,配置AB节点为查询节点,C节点为更新节点,配置23:00-06:00为夜间时段。
操作步骤:
1)开启读写分离功能
参考 填报修改fine_conf_entity 文档,在finedb的fine_conf_entity表中,添加字段和字段值
字段:SystemOptimizationConfig.readWriteSeparation
值:true
2)设置夜间时段
参考 填报修改fine_conf_entity 文档,在finedb的fine_conf_entity表中,添加字段和字段值
字段:DistributedOptimizationConfig.spiderConfig.spider_high_performance_resource_time
值:23:00-06:00
3)设置C节点为更新节点
在C节点工程的webapps\webroot\WEB-INF\config目录下的spider.cluster.properties文件中添加配置
open_spider_update=true
效果说明:
白天(06:00-23:00),AB节点负责查询转发,C节点负责抽取数据更新。
晚上(23:00-06:00),ABC节点一起承担抽取数据更新工作,少量查询请求也会被节点一起进行处理。