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節點一起承擔抽取資料更新工作,少量查詢請求也會被節點一起進行處理。