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

Solr 8.9.0 Cloud跨集群数据同步方案咨询

Solr Cloud 8.9.0 跨集群数据同步适配方案

针对你描述的场景——源集群需保障实时更新与检索,目标集群用于API/报表检索(允许1-2分钟延迟),且CDCR已弃用的情况,以下是几种可行的实现方案:

方案一:基于快照的定时同步

利用Solr的快照(Snapshot)功能,结合共享存储实现定时同步,完全适配分钟级延迟需求:

  • 源集群保持现有NRT副本架构,保障实时检索能力
  • 配置定时任务,每分钟调用Solr API为源集群各分片创建快照:
    curl -X POST "http://source-solr-host:8983/solr/your-collection/replication?command=backup&name=snapshot_$(date +%Y%m%d%H%M)"
    
  • 将快照存储在源、目标集群均可访问的共享存储(如NFS、HDFS)中
  • 目标集群同步执行定时任务,拉取最新快照并恢复到对应分片:
    curl -X POST "http://target-solr-host:8983/solr/your-collection/replication?command=restore&name=snapshot_YYYYMMDDHHMM"
    
  • 关键前提:源、目标集群的分片数、collection配置、schema需完全一致

方案二:基于事务日志(TLOG)的增量同步

借助NRT副本的事务日志记录所有更新操作,实现轻量增量同步:

  • 编写脚本或轻量服务,定期(如每分钟)轮询源集群各分片的TLOG,通过getUpdateLog API获取新增的更新条目
  • 将获取到的更新操作批量发送至目标集群对应分片的更新API,完成增量同步
  • 优势:相比快照同步,数据传输量更小,延迟更易控制在1-2分钟内,无需依赖共享存储

方案三:解耦式消息队列同步

通过中间件解耦源、目标集群的依赖,实现准实时同步:

  • 在数据写入源Solr的链路中,新增消息队列(如Kafka)环节:所有写入源集群的更新操作,同时发送至Kafka主题
  • 目标集群部署消费服务,批量消费Kafka中的更新消息并写入自身索引
  • 优势:完全解耦源、目标集群,同步延迟可通过消费频率灵活调整,且避免直接访问源集群带来的性能影响

核心配置注意事项

  • 目标集群可将副本类型配置为TLOG,无需NRT副本的实时索引能力,降低写入压力
  • 严格保证源、目标集群的schema、collection配置完全一致,避免同步后出现字段不匹配或结构错误
  • 定时同步任务的频率可根据实际延迟需求调整,1分钟间隔完全覆盖1-2分钟的延迟容忍度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:13:07