开发者社区> 问答> 正文

如何重置消费位点

本接口限企业铂金版客户专用,请前往铂金版购买页面查看详情。

描述

根据用户指定的订阅组,将当前的订阅组消费位点重置到指定时间戳。一般用于清理堆积消息,或者回溯消费。有两种方式,一种是清理所有消息,一种是清理消费进度到指定的时间。

请求参数

名称    类型    是否必须    描述
OnsRegionId    String    是    当前查询 MQ 所在区域,可以通过 ONSRegionList 方法获取
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
ConsumerId    String    是    需要查询的消费端CID
Topic    String    是    需要重置位点的 Topic名称
Type    Integer    是    设置0代表清除所有消息,设置1代表清理到指定时间
ResetTimestamp    Long    false    重置位点到指定的时戳,仅仅在 Type 为 1 时生效
返回参数

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
使用示例

    public static void main(String []args) {
            String regionId = "cn-hangzhou";
            String accessKey = "XXXXXXXXXXXXXXXXX";
            String secretKey = "XXXXXXXXXXXXXXXXX";
            String endPointName ="cn-hangzhou";
            String productName ="Ons";
            String domain ="ons.cn-hangzhou.aliyuncs.com";
            /**
            *根据自己所在的区域选择Region后,设置对应的接入点
            */
            try {
                DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
            } catch (ClientException e) {
                e.printStackTrace();
            }
            IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
            IAcsClient iAcsClient= new DefaultAcsClient(profile);
            OnsConsumerResetOffsetRequest request = new OnsConsumerResetOffsetRequest();
            /**
            *ONSRegionId是指你需要API访问ONS哪个区域的资源。
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
            request.setOnsRegionId("daily");
            request.setPreventCache(System.currentTimeMillis());
            request.setAcceptFormat(FormatType.JSON);
            request.setConsumerId("CID_Mingduan");
            request.setTopic("MingduanTest");
            request.setType(1);
            request.setResetTimestamp(System.currentTimeMillis());
            try {
                OnsConsumerResetOffsetResponse response=iAcsClient.getAcsResponse(request);
                System.out.println(response.getRequestId());
            } catch (ServerException e) {
                e.printStackTrace();
            } catch (ClientException e) {
                e.printStackTrace();
            }
        }

展开
收起
猫饭先生 2017-10-27 13:40:45 2400 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载