CNOSDB多集群订阅同步数据丢失问题求助
问题分析与解决方案
核心原因:订阅分发模式选择错误
你创建订阅时使用了DESTINATIONS any参数,这个配置的逻辑是将每条数据随机发送到任意一个目标集群,而非把所有数据同步到每个目标集群。从你的测试结果来看,源集群1000条数据,两个目标集群分别收到490和500条(总和接近1000),完全符合any模式的负载均衡分发特性——这不是数据丢失,而是该模式下的预期行为。
解决方法:修改订阅为全量同步模式
如果需要每个目标集群都收到完整的1000条数据,需要将订阅的分发模式改为all,创建订阅的SQL语句调整为:
create subscription sub001 on benchmark DESTINATIONS all "127.0.0.1:8913" "127.0.0.1:8923";
额外排查点(若修改模式后仍有问题)
- 检查目标集群的日志,确认是否存在写入失败的报错(如权限不足、磁盘空间不足、网络中断)
- 调整
load_cnosdb的--batch-size参数,过大的批次可能导致写入超时,建议先尝试默认值或更小的批次测试 - 确认源集群和目标集群的CNOSDB版本一致,版本不兼容可能导致数据解析异常
内容的提问来源于stack exchange,提问作者Baker X
相关产品推荐
相关产品推荐

