问题五:nacos中前一天修改配置是正常的,第二天修改配置文件就报错什么原因? nacos中前一天修改配置是正常的,第二天修改配置文件就报错,caused: insert config_info fail;什么原因? 参考回答: 如果在 Nacos 中前一天修改配置文件可以正常工作,但第二天修改相同的配置文件后出现错误,可能有以下几种原因: 1. 配置文件...
中文:在页面上修改一个配置文件的时候,页面上直接报错,报错 “caused: insert config_info fail;” 在前一天是可以修改的,但是第二天就无法修改了。 English: When you modify a configuration file on the page, an error is reported directly on the page “caused: insert config_info fail;” It can be...
缓存问题:Nacos 会将加载过的配置信息缓存在内存中,以提高读取效率。如果在部署期间进行了配置文件的...
public void insertOrUpdate(String srcIp, String srcUser, ConfigInfo configInfo, Timestamp time, Map<String, Object> configAdvanceInfo, boolean notify) { try { addConfigInfo(srcIp, srcUser, configInfo, time, configAdvanceInfo, notify); } catch (DataIntegrityViolationException ive) { // 唯一...
persistService.insertOrUpdate(srcIp, srcUser, configInfo, time, configAdvanceInfo, true); //配置更新事件 ConfigChangePublisher .notifyConfigChange(new ConfigDataChangeEvent(false, dataId, group, tenant, time.getTime())); ... } 其中持久
persistService.insertOrUpdate(srcIp, srcUser, configInfo, time, configAdvanceInfo, true); //配置更新事件 ConfigChangePublisher .notifyConfigChange(new ConfigDataChangeEvent(false, dataId, group, tenant, time.getTime())); ... } 1. 2
//persistService.insertOrUpdate插入或更新数据库 //EventDispatcher.fireEvent 通知集群中其他节点 final Timestamp time = TimeUtils.getCurrentTime(); String betaIps = request.getHeader("betaIps"); ConfigInfo configInfo = new ConfigInfo(dataId, group, tenant, appName, content); if (StringUtils....
/* 数据库全名 = nacos_config */ /* 表名称 = config_info_aggr */ /***/ CREATE TABLE `config_info_aggr` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(255) NOT NULL COMMENT 'group_id', `...
ClientWorker#checkConfigInfo方法主要作用是更新配置信息,目前已经获取到的配置信息会缓存到一个Map<String, CacheData>中,然后对map中的数据分批次,一个批次默认是3000条数据,每个批次的数据对应一个线程负责更新,如下: 代码语言:javascript 复制 publicvoidcheckConfigInfo(){// 分任务int listenerSize=cacheMap.get...
.insertOrUpdateTag(configInfo, tag, srcIp, srcUser, time, false); EventDispatcher.fireEvent( new ConfigDataChangeEvent(false, dataId, group, tenant, tag, time.getTime())); 可以看到发布的配置首先会进行持久化,然后会触发变更通知。 持久化这里就不做分析,我们来看看fireEvent这个方法: ...