📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

适用版本: 6.8-6.8

1. 错误异常的基本描述 #

这条异常说明 Azure repository 配置里有不止一个 storage setting 被标记为默认。源码在选主配置时发现第二个默认项后,会直接抛出 SettingsException

常见现象 #

  • Azure 仓库初始化失败。
  • 日志里会列出两个冲突的默认配置名。
  • 常见于复制配置模板后忘记取消旧默认项。

典型报错与异常栈 #

SettingsException: Multiple default Azure data stores configured: [a] and [b]

2. 为什么会发生这个错误 #

默认存储账户只能有一个,否则 Elasticsearch 无法判断应该使用哪个账户作为隐式客户端。常见原因包括:

  • 多个环境配置合并时重复设置默认项。
  • 手工新增账户后没去掉旧账户的默认标记。
  • 模板发布覆盖不完整,导致重复默认。

3. 如何排查和解决这个异常和解决这个异常 #

  1. 列出当前所有 Azure client 配置。
  2. 找出被同时标记为默认的账户。
  3. 保留一个默认项,其他取消默认。
  4. 若不需要隐式默认,改为仓库显式指定 client。
  5. 修复后重新初始化仓库。

4. 如何解决这个错误 #

常用修复思路 #

  • 保证只有一个默认 Azure data store。
  • 显式指定仓库使用的 client,减少歧义。
  • 对模板发布做唯一性校验。

后续注意事项与推荐建议 #

  • 多账户场景应优先使用显式 client 名。
  • 把“默认项唯一”作为配置发布前检查项。

借助 INFINI 产品提升排障效率 #

5. 小结 #

Multiple default Azure data stores configured 的根因是默认账户不唯一。让默认项唯一,或改成显式 client,即可解决。

相关错误 #

附:日志上下文 #

if (primary == null) {
 primary = setting;
} else {
 throw new SettingsException("Multiple default Azure data stores configured: [" + primary.getName() + "] and [" + setting.getName() + "]");
}