使用数据订阅SDK消费数据时报“failed to get master store addr for topic”错误

问题描述

使用数据订阅SDK订阅数据时,报类似如下错误。

failed to get master store addr for topic aliyun_sz_ecs_rdsr*y-1-0

问题原因

订阅通道的消费时间点设置早于实际消费时间。

解决方案

  1. 数据订阅的前提是SDK配置usePublicIp=true参数,确认不是这个问题后进行下一步排查。

    说明

    数据订阅SDK配置 usePublicIp=true,表示SDK通过公网访问DTS订阅通道。

  2. 在数据传输控制台,检查对应的订阅通道的消费时间点,一般消费时间点设置太早会没有数据,容易导致报错。详细报错信息如下。

    0    [Thread-1] INFO  com.aliyun.drc.clusterclient.partition.PartitionPool  - client partition is empty,wait partition balance
    10035 [Thread-1] INFO  com.aliyun.drc.clusterclient.partition.PartitionPool  - client partition is empty,wait partition balance
    20087 [Thread-1] INFO  com.aliyun.drc.clusterclient.partition.PartitionPool  - start new partition: {"tables":["sdp_db."],"topic":"aliyun_sz_ecs_rdsraey-1-0","guid":"dts_rdsraey_XNG","partition":{"name":"cb3999be97c2552477c2c298cb8339f1","gmt":1451272165},"offset":"16843009:1:188:21363830:[$Data]:511","group":"31137122"}
    20229 [Thread-1] ERROR com.aliyun.drc.clusterclient.partition.PartitionPool  - keep alive error
    com.aliyun.drc.client.HttpBadResponseException: java.lang.Exception: failed to get master store addr for topic aliyun_sz_ecs_rds**ey-1-0
      at com.aliyun.drc.client.impl.ServerProxy.askStore(ServerProxy.java:247)
      at com.aliyun.drc.client.impl.ClusterManagers.findStore(ClusterManagers.java:105)
      at com.aliyun.drc.client.impl.DRCClientImpl.connectClusterManager(DRCClientImpl.java:320)
      at com.aliyun.drc.client.impl.DRCClientImpl.startService(DRCClientImpl.java:572)
      at com.aliyun.drc.clusterclient.impl.ClientCluster.doStart(ClientCluster.java:128)
      at com.aliyun.drc.clusterclient.partition.PartitionPool.keepAlive(PartitionPool.java:140)
      at com.aliyun.drc.clusterclient.partition.PartitionPool.run(PartitionPool.java:168)
    说明

    "offset":"16843009:1:188:21363830:1451012406:511",中[$Data] 转换后是2015-12-25 11:00:06,此时间为消费时间点。

  3. 将订阅通道的消费时间点调整为当天的时间即可,具体修改方法详见修改订阅通道消费时间点

适用于

  • 数据传输服务 DTS

    说明

    适用于数据订阅旧版。