ali-sdk / ali-ons

Aliyun Open Notification Service Client
MIT License
151 stars 43 forks source link

Not found, V3_0_6_SNAPSHOT maybe this group consumer boot first #38

Open royalrover opened 6 years ago

royalrover commented 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.

gxcsoccer commented 5 years ago

@royalrover 这个可以直接 pr,还没完全明白你的意思

geemo commented 5 years ago

目前鉴权方式有所改变,新建 topic 即使 RAM 授权了也是不能使用。。。。