You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SolrCloud文档删除仅主副本生效,副本未同步问题求助

SolrCloud 删除文档仅主副本生效,副本数据未同步问题

问题详情

  • 基于Helm部署SolrCloud 9.3,集合IBpets配置:numShards=1,replicationFactor=3,perReplicaState=true
  • 删除该集合单个或全部文档时,仅主副本solr2-solrcloud-1的文档被删除,其余两个副本仍保留原有数据
  • 已尝试通过Admin GUI和curl命令执行删除操作,均未解决同步问题,使用的curl命令如下:
curl -X POST http://localhost:58983/solr/IBpets/update?softCommit=true -H 'Content-Type: application/json' -d ' { "delete": { "query":  "ib_uuid:(\"0eadfae078f744e6b30bf2448e08f672\")" } }'

集群环境配置

  • 资源状态:集群CPU、内存资源充足
  • 部署架构:共1635个集合(仅135个包含数据);3个Solr Pod部署在独立AWS m6a.2xlarge实例;3个ZooKeeper Pod部署在独立AWS m6a.large实例
  • 关键配置参数:
    • Solr:javaMemory="-Xms12g -Xmx12g",javaOpts="-Djute.maxbuffer=50000000"
    • ZooKeeper:jvmFlags="-Djute.maxbuffer=50000000 -Xms4096m -Xmx4096m -verbose:gc -Xloggc:$ZOO_LOG_DIR/zookeeper_gc.log"

排查与解决建议

  • 检查副本节点日志:查看副本Solr节点的日志文件,确认是否存在同步相关错误(如ZooKeeper连接异常、索引同步超时、权限限制等)
  • 验证副本状态:通过Solr Admin UI进入集合IBpets的详情页,查看所有副本的状态是否为active,对比主副本与其他副本的indexVersion值是否一致,确认是否存在索引滞后
  • 手动触发索引同步:在Solr Admin UI的集合IBpets副本管理页面,对未同步的副本执行「Fetch Index」操作,强制从主副本拉取最新索引数据
  • 调整提交策略:当前使用softCommit=true,尝试替换为commit=true执行硬提交,确保删除操作被持久化并触发副本同步,命令示例:
curl -X POST http://localhost:58983/solr/IBpets/update?commit=true -H 'Content-Type: application/json' -d ' { "delete": { "query":  "ib_uuid:(\"0eadfae078f744e6b30bf2448e08f672\")" } }'
  • 检查perReplicaState配置影响:该配置允许副本独立管理状态,需确认副本是否正确监听主副本的更新事件,可尝试临时关闭该配置(修改集合配置后重新加载),验证同步问题是否解决
  • 确认ZooKeeper集群状态:通过zkServer.sh status命令查看每个ZK节点的运行状态,检查ZK日志是否存在Leader选举异常、数据同步失败等问题
  • 验证节点网络连通性:确保3个Solr Pod之间可以正常通信,检查AWS安全组、集群网络策略是否限制了主副本向其他副本推送更新的流量

内容的提问来源于stack exchange,提问作者Jennifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:27:05