@SuppressWarnings("unchecked") private <T> Optional<ConsumerBase<T>> subscriptionExist(ConsumerConfigurationData<?> conf) { Optional<ConsumerBase<?>> subscriber = consumers.keySet().stream() .filter(consumerBase -> consumerBase.getSubType().equals(PulsarApi.CommandSubscribe.SubType.Shared)) .filter(c -> c.getSubscription().equals(conf.getSubscriptionName())) .findFirst(); return subscriber.map(ConsumerBase.class::cast); }
statsStream.writePair("msgRateRedeliver", stats.msgRateRedeliver); if (PulsarApi.CommandSubscribe.SubType.Shared.equals(subType)) { statsStream.writePair("unackedMessages", stats.unackedMessages); statsStream.writePair("blockedConsumerOnUnackedMsgs", stats.blockedConsumerOnUnackedMsgs);
if (SubType.Shared.equals(subStats.type)) { if (dispatcher instanceof PersistentDispatcherMultipleConsumers) { subStats.unackedMessages = ((PersistentDispatcherMultipleConsumers) dispatcher)
topicStatsStream.writePair("totalNonContiguousDeletedMessagesRange", subscription.getTotalNonContiguousDeletedMessagesRange()); topicStatsStream.writePair("type", subscription.getTypeString()); if (SubType.Shared.equals(subscription.getType())) { if(subscription.getDispatcher() instanceof PersistentDispatcherMultipleConsumers) { PersistentDispatcherMultipleConsumers dispatcher = (PersistentDispatcherMultipleConsumers)subscription.getDispatcher();
/** * Checks if consumer-blocking on unAckedMessages is allowed for below conditions:<br/> * a. consumer must have Shared-subscription<br/> * b. {@link maxUnackedMessages} value > 0 * * @return */ private boolean shouldBlockConsumerOnUnackMsgs() { return SubType.Shared.equals(subType) && maxUnackedMessages > 0; }