@Stable class PubSubReader extends cz.o2.proxima.storage.AbstractStorage implements CommitLogReader
CommitLogReader for Google PubSub.| Modifier and Type | Class and Description |
|---|---|
private static interface |
PubSubReader.PubSubConsumer |
(package private) static class |
PubSubReader.PubSubOffset |
(package private) static class |
PubSubReader.PubSubPartition |
cz.o2.proxima.storage.AbstractStorage.SerializableAbstractStorageCommitLogReader.Factory<T extends CommitLogReader>| Modifier and Type | Field and Description |
|---|---|
private PubSubAccessor |
accessor |
private java.util.Map<java.lang.String,java.lang.Object> |
cfg |
private Context |
context |
private java.util.concurrent.ExecutorService |
executor |
private int |
maxAckDeadline |
private java.lang.String |
project |
private int |
subscriptionAckDeadline |
private boolean |
subscriptionAutoCreate |
private java.lang.String |
topic |
private PubSubWatermarkConfiguration |
watermarkConfiguration |
| Constructor and Description |
|---|
PubSubReader(PubSubAccessor accessor,
Context context) |
| Modifier and Type | Method and Description |
|---|---|
private java.lang.String |
asConsumerName(java.lang.String name) |
CommitLogReader.Factory<?> |
asFactory() |
private ObserveHandle |
consume(java.lang.String consumerName,
PubSubReader.PubSubConsumer consumer,
cz.o2.proxima.functional.UnaryFunction<java.lang.Throwable,java.lang.Boolean> errorHandler,
java.lang.Runnable onInit,
java.lang.Runnable onRestart,
java.lang.Runnable onCancel,
java.util.concurrent.atomic.AtomicLong committedWatermark) |
private CommitLogObserver.OffsetCommitter |
createBulkCommitter(java.lang.Object listLock,
long confirmUntil,
java.util.concurrent.atomic.AtomicLong globalOffset,
java.util.concurrent.atomic.AtomicReference<java.util.List<com.google.cloud.pubsub.v1.AckReplyConsumer>> unconfirmed,
cz.o2.proxima.time.WatermarkSupplier watermarkSupplier,
java.util.concurrent.atomic.AtomicLong committedWatermark) |
private com.google.cloud.pubsub.v1.MessageReceiver |
createMessageReceiver(com.google.pubsub.v1.ProjectSubscriptionName subscription,
java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.Subscriber> subscriber,
java.util.concurrent.atomic.AtomicBoolean stopProcessing,
PubSubReader.PubSubConsumer consumer,
cz.o2.proxima.time.WatermarkEstimator watermarkEstimator,
cz.o2.proxima.functional.UnaryFunction<java.lang.Throwable,java.lang.Boolean> errorHandler,
java.lang.Runnable onRestart,
java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.MessageReceiver> receiver) |
private void |
createSubscription(com.google.cloud.pubsub.v1.SubscriptionAdminClient client,
com.google.pubsub.v1.ProjectSubscriptionName subscription) |
(package private) cz.o2.proxima.time.WatermarkEstimator |
createWatermarkEstimator(long minWatermark) |
(package private) java.util.concurrent.ExecutorService |
executor() |
private void |
failUnsupported() |
private java.lang.String |
findConsumerFromPartitions(java.lang.String name,
java.util.Collection<cz.o2.proxima.storage.Partition> partitions) |
java.util.List<cz.o2.proxima.storage.Partition> |
getPartitions() |
boolean |
hasExternalizableOffsets() |
(package private) com.google.cloud.pubsub.v1.Subscriber |
newSubscriber(com.google.pubsub.v1.ProjectSubscriptionName subscription,
com.google.cloud.pubsub.v1.MessageReceiver receiver) |
ObserveHandle |
observe(java.lang.String name,
cz.o2.proxima.storage.commitlog.Position position,
CommitLogObserver observer) |
private ObserveHandle |
observe(java.lang.String name,
cz.o2.proxima.storage.commitlog.Position position,
long minWatermark,
CommitLogObserver observer) |
ObserveHandle |
observeBulk(java.lang.String name,
cz.o2.proxima.storage.commitlog.Position position,
boolean stopAtCurrent,
CommitLogObserver observer)
Observe PubSub in a bulk fashion.
|
private ObserveHandle |
observeBulk(java.lang.String name,
cz.o2.proxima.storage.commitlog.Position position,
boolean stopAtCurrent,
long minWatermark,
CommitLogObserver observer) |
ObserveHandle |
observeBulkOffsets(java.util.Collection<Offset> offsets,
boolean stopAtCurrent,
CommitLogObserver observer) |
ObserveHandle |
observeBulkPartitions(java.lang.String name,
java.util.Collection<cz.o2.proxima.storage.Partition> partitions,
cz.o2.proxima.storage.commitlog.Position position,
boolean stopAtCurrent,
CommitLogObserver observer) |
private ObserveHandle |
observeBulkWithMinWatermark(java.lang.String name,
cz.o2.proxima.storage.commitlog.Position position,
boolean stopAtCurrent,
long minWatermark,
CommitLogObserver observer) |
ObserveHandle |
observePartitions(java.lang.String name,
java.util.Collection<cz.o2.proxima.storage.Partition> partitions,
cz.o2.proxima.storage.commitlog.Position position,
boolean stopAtCurrent,
CommitLogObserver observer) |
(package private) com.google.cloud.pubsub.v1.Subscriber |
stopAsync(java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.Subscriber> subscriber) |
private void |
validateNotStopAtCurrent(boolean stopAtCurrent) |
private void |
validatePosition(cz.o2.proxima.storage.commitlog.Position position) |
equals, getEntityDescriptor, getUri, hashCodeclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitfetchOffsets, getOffsetExternalizer, getUri, observe, observeBulk, observeBulk, observeBulkOffsets, observeBulkPartitions, observeBulkPartitions, observeBulkPartitions, observePartitions, observePartitions, observePartitions, restoresSequentialIdsprivate final PubSubAccessor accessor
private final java.util.Map<java.lang.String,java.lang.Object> cfg
private final Context context
private final java.lang.String project
private final java.lang.String topic
private final int maxAckDeadline
private final int subscriptionAckDeadline
private final boolean subscriptionAutoCreate
private final PubSubWatermarkConfiguration watermarkConfiguration
private transient java.util.concurrent.ExecutorService executor
PubSubReader(PubSubAccessor accessor, Context context)
public java.util.List<cz.o2.proxima.storage.Partition> getPartitions()
getPartitions in interface CommitLogReaderpublic ObserveHandle observe(@Nullable java.lang.String name, cz.o2.proxima.storage.commitlog.Position position, CommitLogObserver observer)
observe in interface CommitLogReaderprivate ObserveHandle observe(@Nullable java.lang.String name, cz.o2.proxima.storage.commitlog.Position position, long minWatermark, CommitLogObserver observer)
public ObserveHandle observePartitions(@Nullable java.lang.String name, java.util.Collection<cz.o2.proxima.storage.Partition> partitions, cz.o2.proxima.storage.commitlog.Position position, boolean stopAtCurrent, CommitLogObserver observer)
observePartitions in interface CommitLogReaderpublic ObserveHandle observeBulk(@Nullable java.lang.String name, cz.o2.proxima.storage.commitlog.Position position, boolean stopAtCurrent, CommitLogObserver observer)
observeBulk in interface CommitLogReadername - name of the observer subscriptionposition - must be set to NEWESTstopAtCurrent - throw UnsupportedOperationException when trueobserver - the observer of dataprivate ObserveHandle observeBulk(@Nullable java.lang.String name, cz.o2.proxima.storage.commitlog.Position position, boolean stopAtCurrent, long minWatermark, CommitLogObserver observer)
private CommitLogObserver.OffsetCommitter createBulkCommitter(java.lang.Object listLock, long confirmUntil, java.util.concurrent.atomic.AtomicLong globalOffset, java.util.concurrent.atomic.AtomicReference<java.util.List<com.google.cloud.pubsub.v1.AckReplyConsumer>> unconfirmed, cz.o2.proxima.time.WatermarkSupplier watermarkSupplier, java.util.concurrent.atomic.AtomicLong committedWatermark)
public ObserveHandle observeBulkPartitions(@Nullable java.lang.String name, java.util.Collection<cz.o2.proxima.storage.Partition> partitions, cz.o2.proxima.storage.commitlog.Position position, boolean stopAtCurrent, CommitLogObserver observer)
observeBulkPartitions in interface CommitLogReaderprivate ObserveHandle observeBulkWithMinWatermark(@Nullable java.lang.String name, cz.o2.proxima.storage.commitlog.Position position, boolean stopAtCurrent, long minWatermark, CommitLogObserver observer)
public ObserveHandle observeBulkOffsets(java.util.Collection<Offset> offsets, boolean stopAtCurrent, CommitLogObserver observer)
observeBulkOffsets in interface CommitLogReadercom.google.cloud.pubsub.v1.Subscriber newSubscriber(com.google.pubsub.v1.ProjectSubscriptionName subscription,
com.google.cloud.pubsub.v1.MessageReceiver receiver)
cz.o2.proxima.time.WatermarkEstimator createWatermarkEstimator(long minWatermark)
private void createSubscription(com.google.cloud.pubsub.v1.SubscriptionAdminClient client,
com.google.pubsub.v1.ProjectSubscriptionName subscription)
private void validatePosition(cz.o2.proxima.storage.commitlog.Position position)
private void validateNotStopAtCurrent(boolean stopAtCurrent)
private void failUnsupported()
private java.lang.String asConsumerName(java.lang.String name)
private ObserveHandle consume(java.lang.String consumerName, PubSubReader.PubSubConsumer consumer, cz.o2.proxima.functional.UnaryFunction<java.lang.Throwable,java.lang.Boolean> errorHandler, @Nullable java.lang.Runnable onInit, java.lang.Runnable onRestart, java.lang.Runnable onCancel, java.util.concurrent.atomic.AtomicLong committedWatermark)
private com.google.cloud.pubsub.v1.MessageReceiver createMessageReceiver(com.google.pubsub.v1.ProjectSubscriptionName subscription,
java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.Subscriber> subscriber,
java.util.concurrent.atomic.AtomicBoolean stopProcessing,
PubSubReader.PubSubConsumer consumer,
cz.o2.proxima.time.WatermarkEstimator watermarkEstimator,
cz.o2.proxima.functional.UnaryFunction<java.lang.Throwable,java.lang.Boolean> errorHandler,
java.lang.Runnable onRestart,
java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.MessageReceiver> receiver)
com.google.cloud.pubsub.v1.Subscriber stopAsync(java.util.concurrent.atomic.AtomicReference<com.google.cloud.pubsub.v1.Subscriber> subscriber)
java.util.concurrent.ExecutorService executor()
public boolean hasExternalizableOffsets()
hasExternalizableOffsets in interface CommitLogReaderpublic CommitLogReader.Factory<?> asFactory()
asFactory in interface CommitLogReaderprivate java.lang.String findConsumerFromPartitions(java.lang.String name,
java.util.Collection<cz.o2.proxima.storage.Partition> partitions)
Copyright © 2017–2022. All rights reserved.