本文为您展示DataHub的 Java SDK的Subscription操作。
创建Subscription
参数说明
参数名 | 参数类型 | 参数说明 |
projectName | String | 项目名称。 |
topicName | String | Topic名称。 |
comment | String | The comment of the subscription. comment格式为:
|
异常说明
异常类名 | 错误码 | 异常说明 |
DatahubClientException | - | 并且是所有异常的基类 |
InvalidParameterException |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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 |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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 |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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的参数pageNum和pageSize取指定范围的subscription信息,例如:
pageNum =1, pageSize =10,获取1-10个subscription。
pageNum =2, pageSize =5,获取6-10的subscription。
异常说明
异常类名 | 错误码 | 异常说明 |
DatahubClientException | - | 并且是所有异常的基类 |
InvalidParameterException |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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 |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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有两种状态,OFFLINE和ONLINE,分别表示离线和在线。
参数说明
参数名 | 参数类型 | 参数说明 |
projectName | String | 项目名称。 |
topicName | String | Topic名称。 |
subId | String | The id of the subscription. |
state | SubscriptionState | The state you want to change. |
异常说明
异常类名 | 错误码 | 异常说明 |
DatahubClientException | - | 并且是所有异常的基类 |
InvalidParameterException |
| 非法参数。 |
AuthorizationFailureException |
| Authorization 签名解析异常,检查AK是否填写正确。 |
ResourceNotFoundException |
| 访问的资源不存在。 说明 进行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());
}
}