Demogorgon314 commented on a change in pull request #11355:
URL: https://github.com/apache/pulsar/pull/11355#discussion_r672355732
##########
File path:
pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
##########
@@ -1030,34 +1032,52 @@ protected void internalGetSubscriptions(AsyncResponse
asyncResponse, boolean aut
false).thenAccept(partitionMetadata -> {
if (partitionMetadata.partitions > 0) {
try {
- // get the subscriptions only from the 1st partition
- // since all the other partitions will have the same
- // subscriptions
-
pulsar().getAdminClient().topics().getSubscriptionsAsync(topicName.getPartition(0).toString())
- .whenComplete((r, ex) -> {
- if (ex != null) {
- log.warn("[{}] Failed to get list of
subscriptions for {}: {}", clientAppId(),
- topicName, ex.getMessage());
-
- if (ex instanceof
PulsarAdminException) {
- PulsarAdminException pae =
(PulsarAdminException) ex;
- if (pae.getStatusCode() ==
Status.NOT_FOUND.getStatusCode()) {
- asyncResponse.resume(new
RestException(Status.NOT_FOUND,
- "Internal topics have
not been generated yet"));
- return;
- } else {
- asyncResponse.resume(new
RestException(pae));
- return;
- }
- } else {
- asyncResponse.resume(new
RestException(ex));
- return;
- }
+ final Set<String> subscriptions =
Sets.newConcurrentHashSet();
+ final List<CompletableFuture<Object>>
subscriptionFutures = Lists.newArrayList();
+ if (topicName.getDomain() == TopicDomain.persistent) {
+ String path =
String.format("/managed-ledgers/%s/%s", namespaceName.toString(), domain());
+ List<String> children =
getLocalPolicies().getChildren(path);
Review comment:
I have a small suggestion, it is use getTopicReference to get
subscribers directly Instead of use adminClient, this can reduce RPC calls.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]