问题描述
使用数据订阅SDK订阅数据时,报类似如下错误。
failed to get master store addr for topic aliyun_sz_ecs_rdsr*y-1-0
问题原因
订阅通道的消费时间点设置早于实际消费时间。
解决方案
数据订阅的前提是SDK配置
usePublicIp=true
参数,确认不是这个问题后进行下一步排查。说明数据订阅SDK配置
usePublicIp=true
,表示SDK通过公网访问DTS订阅通道。在数据传输控制台,检查对应的订阅通道的消费时间点,一般消费时间点设置太早会没有数据,容易导致报错。详细报错信息如下。
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
,此时间为消费时间点。将订阅通道的消费时间点调整为当天的时间即可,具体修改方法详见修改订阅通道消费时间点。
适用于
数据传输服务 DTS
说明适用于数据订阅旧版。
文档内容是否对您有帮助?