Package org.apache.pulsar.broker.service
Class Consumer
- java.lang.Object
-
- org.apache.pulsar.broker.service.Consumer
-
public class Consumer extends java.lang.ObjectA Consumer is a consumer currently connected and associated with a Subscription.
-
-
Constructor Summary
Constructors Constructor Description Consumer(Subscription subscription, org.apache.pulsar.common.api.proto.CommandSubscribe.SubType subType, java.lang.String topicName, long consumerId, int priorityLevel, java.lang.String consumerName, boolean isDurable, TransportCnx cnx, java.lang.String appId, java.util.Map<java.lang.String,java.lang.String> metadata, boolean readCompacted, org.apache.pulsar.common.api.proto.CommandSubscribe.InitialPosition subscriptionInitialPosition, org.apache.pulsar.common.api.proto.KeySharedMeta keySharedMeta, org.apache.pulsar.client.api.MessageId startMessageId, long consumerEpoch)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.CompletableFuture<java.lang.Void>checkPermissionsAsync()voidclose()Close the consumer if: a.voidclose(boolean isResetCursor)TransportCnxcnx()longconsumerId()java.lang.StringconsumerName()voiddisconnect()voiddisconnect(boolean isResetCursor)voiddoUnsubscribe(long requestId)booleanequals(java.lang.Object obj)voidflowPermits(int additionalNumberOfMessages)intgetAvailablePermits()intgetAvgMessagesPerEntry()return 0 if there is no entry dispatched yet.longgetBytesOutCounter()java.lang.StringgetClientAddress()org.apache.pulsar.common.api.proto.KeySharedMetagetKeySharedMeta()intgetMaxUnackedMessages()java.util.Map<java.lang.String,java.lang.String>getMetadata()longgetMsgOutCounter()org.apache.pulsar.common.util.collections.ConcurrentLongLongPairHashMapgetPendingAcks()intgetPriorityLevel()org.apache.pulsar.client.api.MessageIdgetStartMessageId()org.apache.pulsar.common.policies.data.stats.ConsumerStatsImplgetStats()SubscriptiongetSubscription()intgetUnackedMessages()inthashCode()booleanisBlocked()booleanisPreciseDispatcherFlowControl()booleanisWritable()java.util.concurrent.CompletableFuture<java.lang.Void>messageAcked(org.apache.pulsar.common.api.proto.CommandAck ack)voidreachedEndOfTopic()booleanreadCompacted()voidredeliverUnacknowledgedMessages(long consumerEpoch)voidredeliverUnacknowledgedMessages(java.util.List<org.apache.pulsar.common.api.proto.MessageIdData> messageIds)io.netty.util.concurrent.Future<java.lang.Void>sendMessages(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, EntryBatchSizes batchSizes, EntryBatchIndexesAcks batchIndexesAcks, int totalMessages, long totalBytes, long totalChunkedMessages, RedeliveryTracker redeliveryTracker)io.netty.util.concurrent.Future<java.lang.Void>sendMessages(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, EntryBatchSizes batchSizes, EntryBatchIndexesAcks batchIndexesAcks, int totalMessages, long totalBytes, long totalChunkedMessages, RedeliveryTracker redeliveryTracker, long epoch)Dispatch a list of entries to the consumer.voidsetReadPositionWhenJoining(org.apache.bookkeeper.mledger.impl.PositionImpl readPositionWhenJoining)org.apache.pulsar.common.api.proto.CommandSubscribe.SubTypesubType()java.lang.StringtoString()voidupdateRates()voidupdateStats(org.apache.pulsar.common.policies.data.stats.ConsumerStatsImpl consumerStats)
-
-
-
Constructor Detail
-
Consumer
public Consumer(Subscription subscription, org.apache.pulsar.common.api.proto.CommandSubscribe.SubType subType, java.lang.String topicName, long consumerId, int priorityLevel, java.lang.String consumerName, boolean isDurable, TransportCnx cnx, java.lang.String appId, java.util.Map<java.lang.String,java.lang.String> metadata, boolean readCompacted, org.apache.pulsar.common.api.proto.CommandSubscribe.InitialPosition subscriptionInitialPosition, org.apache.pulsar.common.api.proto.KeySharedMeta keySharedMeta, org.apache.pulsar.client.api.MessageId startMessageId, long consumerEpoch)
-
-
Method Detail
-
subType
public org.apache.pulsar.common.api.proto.CommandSubscribe.SubType subType()
-
consumerId
public long consumerId()
-
consumerName
public java.lang.String consumerName()
-
readCompacted
public boolean readCompacted()
-
sendMessages
public io.netty.util.concurrent.Future<java.lang.Void> sendMessages(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, EntryBatchSizes batchSizes, EntryBatchIndexesAcks batchIndexesAcks, int totalMessages, long totalBytes, long totalChunkedMessages, RedeliveryTracker redeliveryTracker)
-
sendMessages
public io.netty.util.concurrent.Future<java.lang.Void> sendMessages(java.util.List<org.apache.bookkeeper.mledger.Entry> entries, EntryBatchSizes batchSizes, EntryBatchIndexesAcks batchIndexesAcks, int totalMessages, long totalBytes, long totalChunkedMessages, RedeliveryTracker redeliveryTracker, long epoch)Dispatch a list of entries to the consumer.
It is also responsible to release entries data and recycle entries object.- Returns:
- a SendMessageInfo object that contains the detail of what was sent to consumer
-
isWritable
public boolean isWritable()
-
close
public void close() throws BrokerServiceExceptionClose the consumer if: a. the connection is dropped b. connection is open (graceful close) and there are no pending message acks- Throws:
BrokerServiceException
-
close
public void close(boolean isResetCursor) throws BrokerServiceException- Throws:
BrokerServiceException
-
disconnect
public void disconnect()
-
disconnect
public void disconnect(boolean isResetCursor)
-
doUnsubscribe
public void doUnsubscribe(long requestId)
-
messageAcked
public java.util.concurrent.CompletableFuture<java.lang.Void> messageAcked(org.apache.pulsar.common.api.proto.CommandAck ack)
-
flowPermits
public void flowPermits(int additionalNumberOfMessages)
-
getAvailablePermits
public int getAvailablePermits()
-
getAvgMessagesPerEntry
public int getAvgMessagesPerEntry()
return 0 if there is no entry dispatched yet.
-
isBlocked
public boolean isBlocked()
-
reachedEndOfTopic
public void reachedEndOfTopic()
-
updateRates
public void updateRates()
-
updateStats
public void updateStats(org.apache.pulsar.common.policies.data.stats.ConsumerStatsImpl consumerStats)
-
getStats
public org.apache.pulsar.common.policies.data.stats.ConsumerStatsImpl getStats()
-
getMsgOutCounter
public long getMsgOutCounter()
-
getBytesOutCounter
public long getBytesOutCounter()
-
getUnackedMessages
public int getUnackedMessages()
-
getKeySharedMeta
public org.apache.pulsar.common.api.proto.KeySharedMeta getKeySharedMeta()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
checkPermissionsAsync
public java.util.concurrent.CompletableFuture<java.lang.Void> checkPermissionsAsync()
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getPendingAcks
public org.apache.pulsar.common.util.collections.ConcurrentLongLongPairHashMap getPendingAcks()
-
getPriorityLevel
public int getPriorityLevel()
-
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages(long consumerEpoch)
-
redeliverUnacknowledgedMessages
public void redeliverUnacknowledgedMessages(java.util.List<org.apache.pulsar.common.api.proto.MessageIdData> messageIds)
-
getSubscription
public Subscription getSubscription()
-
isPreciseDispatcherFlowControl
public boolean isPreciseDispatcherFlowControl()
-
setReadPositionWhenJoining
public void setReadPositionWhenJoining(org.apache.bookkeeper.mledger.impl.PositionImpl readPositionWhenJoining)
-
getMaxUnackedMessages
public int getMaxUnackedMessages()
-
cnx
public TransportCnx cnx()
-
getClientAddress
public java.lang.String getClientAddress()
-
getStartMessageId
public org.apache.pulsar.client.api.MessageId getStartMessageId()
-
getMetadata
public java.util.Map<java.lang.String,java.lang.String> getMetadata()
-
-