diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsReaderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsReaderImpl.java index d25d1ba067f93..32c9869e9a43d 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsReaderImpl.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/MultiTopicsReaderImpl.java @@ -48,12 +48,14 @@ public class MultiTopicsReaderImpl implements Reader { public MultiTopicsReaderImpl(PulsarClientImpl client, ReaderConfigurationData readerConfiguration, ExecutorProvider executorProvider, CompletableFuture> consumerFuture, Schema schema) { - String subscription = "multiTopicsReader-" + DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 10); - if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionRolePrefix())) { - subscription = readerConfiguration.getSubscriptionRolePrefix() + "-" + subscription; - } + String subscription; if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionName())) { subscription = readerConfiguration.getSubscriptionName(); + } else { + subscription = "multiTopicsReader-" + DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 10); + if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionRolePrefix())) { + subscription = readerConfiguration.getSubscriptionRolePrefix() + "-" + subscription; + } } ConsumerConfigurationData consumerConfiguration = new ConsumerConfigurationData<>(); consumerConfiguration.getTopicNames().addAll(readerConfiguration.getTopicNames()); diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ReaderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ReaderImpl.java index 2fa3dd74f1e43..5b86864673bbf 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ReaderImpl.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ReaderImpl.java @@ -52,13 +52,14 @@ public class ReaderImpl implements Reader { public ReaderImpl(PulsarClientImpl client, ReaderConfigurationData readerConfiguration, ExecutorProvider executorProvider, CompletableFuture> consumerFuture, Schema schema) { - - String subscription = "reader-" + DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 10); - if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionRolePrefix())) { - subscription = readerConfiguration.getSubscriptionRolePrefix() + "-" + subscription; - } + String subscription; if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionName())) { subscription = readerConfiguration.getSubscriptionName(); + } else { + subscription = "reader-" + DigestUtils.sha1Hex(UUID.randomUUID().toString()).substring(0, 10); + if (StringUtils.isNotBlank(readerConfiguration.getSubscriptionRolePrefix())) { + subscription = readerConfiguration.getSubscriptionRolePrefix() + "-" + subscription; + } } ConsumerConfigurationData consumerConfiguration = new ConsumerConfigurationData<>();