分页
更新时间:2026-09-09
Marker 分页
listClusters、getClusterNodes、listClusterConfigs、listJobs 的请求继承 ListRequest,使用 marker / maxKeys 分页;响应继承 ListResponse,包含 marker、nextMarker、isTruncated、maxKeys。
maxKeys 默认值为 -1,只有取值在 1 到 1000 之间时才会作为请求参数发送,超出范围时由服务端使用默认页大小。
Java
1String marker = null;
2while (true) {
3 ListClustersRequest request = new ListClustersRequest();
4 request.setMaxKeys(100);
5 if (marker != null) {
6 request.setMarker(marker);
7 }
8
9 ListClustersResponse response = client.listClusters(request);
10 for (Cluster cluster : response.getClusters()) {
11 System.out.println(cluster.getClusterId() + " " + cluster.getName());
12 }
13
14 if (!response.getIsTruncated() || response.getNextMarker() == null) {
15 break;
16 }
17 marker = response.getNextMarker();
18}
注意判断截断使用 getIsTruncated(),不是 isTruncated()。
页码分页
listTopicPartitions 的请求继承 PageListRequest,使用 pageNo / pageSize 分页;响应继承 PageListResponse,包含 pageNo、pageSize、total。
pageNo 默认为 1 且始终发送;pageSize 默认为 10,只有大于 0 时才发送。
过滤参数
部分列表接口支持服务端过滤,未设置的过滤条件不会发送:
| 接口 | 可选过滤参数 |
|---|---|
listClusters |
clusterName、state、mode、kafkaVersion、payment、tagKey + tagValue |
getClusterNodes |
state |
listClusterConfigs |
configName、state |
listClusterConfigRevisions |
state |
listTopic |
topicName(前缀匹配) |
listConsumerGroup |
groupName |
listJobs |
name |
listQuotas |
entityType |
listAcls |
username、patternType、resourceType、resourceName |
listClusters 的标签过滤要求 tagKey 与 tagValue 成对出现,只设置一个会抛出 IllegalArgumentException。
评价此篇文章
