Subscription操作

本文为您展示DataHub的 Java SDKSubscription操作。

创建Subscription

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

comment

String

The comment of the subscription.

comment格式为:

{“application”:”应用”,”description”:”描述”}

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void createSubscription(String projectName,String topicName) {
  try {
      CreateSubscriptionResult createSubscriptionResult = datahubClient.createSubscription(projectName, topicName, Constant.subscribtionComment);
      System.out.println("create subscription successful");
      System.out.println(createSubscriptionResult.getSubId());
  } catch (DatahubClientException e) {
        System.out.println(e.getErrorMessage());      
  }
}

删除Subscription

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

subId

String

The id of the subscription.

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void deleteSubscription(String projectName,String topicName,String subId) {
  try {
      datahubClient.deleteSubscription(projectName, topicName, subId);
      System.out.println("delete subscription successful");
  } catch (DatahubClientException e) {
        System.out.println(e.getErrorMessage());      
  }
}

更新Subscription

更新已存在的Subscription,目前只支持更新comment。

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

subId

String

The id of the subscription.

comment

String

The comment you want to update.

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void updateSubscription(String projectName, String topicName, String subId, String comment){
        try {
            datahubClient.updateSubscription(projectName,topicName,subId,comment)
        } catch (DatahubClientException e) {
            System.out.println(e.getErrorMessage());

        }

    }

列出Subscription

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

pageNum

int

The page number used to list subscriptions.

pageSize

int

The page size used to list subscriptions.

说明

listSubscription的参数pageNumpageSize取指定范围的subscription信息,例如:

  • pageNum =1, pageSize =10,获取1-10subscription。

  • pageNum =2, pageSize =5,获取6-10subscription。

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void listSubscription(String projectName, String topicName, int pageNum, int pageSize) {
    try {
        ListSubscriptionResult listSubscriptionResult = datahubClient.listSubscription(projectName, topicName, pageNum, pageSize);
        if (listSubscriptionResult.getSubscriptions().size() > 0) {
            System.out.println(listSubscriptionResult.getTotalCount());
            System.out.println(listSubscriptionResult.getSubscriptions().size());
            for (SubscriptionEntry entry : listSubscriptionResult.getSubscriptions()) {
                System.out.println(entry.getSubId() + "\t"
                        + entry.getState() + "\t"
                        + entry.getType() + "\t"
                        + entry.getComment());
            }
        }
    } catch (DatahubClientException e) {
        System.out.println(e.getErrorMessage());

    }
}

查询Subscription

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

subId

String

The id of the subscription.

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void getSubscription(String projectName, String topicName, String subId) {
    try {
        GetSubscriptionResult getSubscriptionResult = datahubClient.getSubscription(projectName, topicName, subId);
        System.out.println(getSubscriptionResult.getSubId() + "\t"
                + getSubscriptionResult.getState() + "\t"
                + getSubscriptionResult.getType() + "\t"
                + getSubscriptionResult.getComment());
    }  catch (DatahubClientException e) {
        System.out.println(e.getErrorMessage());

    }
}

更新Subscription状态

Subscription有两种状态,OFFLINEONLINE,分别表示离线和在线。

参数说明

参数名

参数类型

参数说明

projectName

String

项目名称。

topicName

String

Topic名称。

subId

String

The id of the subscription.

state

SubscriptionState

The state you want to change.

异常说明

异常类名

错误码

异常说明

DatahubClientException

-

并且是所有异常的基类

InvalidParameterException

InvalidParameter

InvalidCursor

非法参数。

AuthorizationFailureException

Unauthorized

Authorization 签名解析异常,检查AK是否填写正确。

ResourceNotFoundException

ResourceNotFound

NoSuchProject

NoSuchTopic

NoSuchShard

NoSuchSubscription

NoSuchConnector

NoSuchMeteringInfo

访问的资源不存在。

说明

进行Split/Merge操作后,立即发送其他请求,有可能会抛出该异常

代码示例

public static void updateSubscriptionState(String projectName, String topicName,String subId) {
    try {
        datahubClient.updateSubscriptionState(projectName, topicName, subId, SubscriptionState.ONLINE);
        System.out.println("update subscription state successful");
    } catch (DatahubClientException e) {
        System.out.println(e.getErrorMessage());        
    }
}