痛点
多个交易员或者风控人员操作核心交易配置文件((如手续费率、交易限额、风控阈值、可用交易品种、订单超时时间等),导致数据错乱。
根因分析
确保在任何时候,只有一个组价可以操作配置文件。
解决方案
单例模式+读写锁
通过单例模式确保全局唯一配置读写锁,通过读写锁实现高并发下读写。
public class TradingConfigManager {
// 懒汉式
private static volatile TradingConfigManager instance;
private TradingConfigManager(){
loadConfig();
}
public static TradingConfigManager getInstance(){
// DCL
if (instance == null){
synchronized (TradingConfigManager.class){
if (instance==null){
instance = new TradingConfigManager();
}
}
}
return instance;
}
//加载配置文件(写锁保护)
private void loadConfig() {
// 从文件读取配置
}
// 读取配置文件(读锁保护)
public String getConfig(String key){
return null;
}
// 更新配置文件(写锁保护)
public void updateConfig(String key, String value){
}
}
一句话
单例模式+读写锁,实现配置一致性
其他可以优化的点
- 本地监听
- 分布式配置中心
- 文件备份与回滚