Open royalrover opened 6 years ago
当 broker对fetchConsumeOffset请求返回错误信息 “Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first”,rocket sdk并未做任何处理,仍是返回默认为-1的offset,直接影响新的消费组无法消费历史消息。
long minOffset = this.brokerController.getMessageStore().getMinOffsetInQuque(requestHeader.getTopic(), requestHeader.getQueueId()); if (minOffset <= 0 && !this.brokerController.getMessageStore().checkInDiskByConsumeOffset( requestHeader.getTopic(), requestHeader.getQueueId(), 0)) { responseHeader.setOffset(0L); response.setCode(ResponseCode.SUCCESS); response.setRemark(null); } else { response.setCode(ResponseCode.QUERY_NOT_FOUND); response.setRemark("Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first"); }
通过源码可以看到如果消费组信息并没有存储在broker上则默认返回该错误。因此对于大多数并未堆积过多数量消息的情况下,可以返回offset为0.
@royalrover 这个可以直接 pr,还没完全明白你的意思
目前鉴权方式有所改变,新建 topic 即使 RAM 授权了也是不能使用。。。。
当 broker对fetchConsumeOffset请求返回错误信息 “Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first”,rocket sdk并未做任何处理,仍是返回默认为-1的offset,直接影响新的消费组无法消费历史消息。
通过源码可以看到如果消费组信息并没有存储在broker上则默认返回该错误。因此对于大多数并未堆积过多数量消息的情况下,可以返回offset为0.