public class GrpcDataService extends org.apache.beam.model.fnexecution.v1.BeamFnDataGrpc.BeamFnDataImplBase implements FnService, FnDataService
FnDataServiceimplemented via gRPC.
This service allows for multiple clients to transmit
This service transmits all outgoing
BeamFnApi.Elements messages to the first client
|Constructor and Description|
This constructor is for migrating Dataflow purpose only.
|Modifier and Type||Method and Description|
Registers a receiver for the provided instruction id.
Receivers are only expected to be unregistered when bundle processing has completed successfully.
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
@Deprecated public GrpcDataService()
public static GrpcDataService create(PipelineOptions options, java.util.concurrent.ExecutorService executor, OutboundObserverFactory outboundObserverFactory)
public org.apache.beam.vendor.grpc.v1p48p1.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> data(org.apache.beam.vendor.grpc.v1p48p1.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> outboundElementObserver)
public void close() throws java.lang.Exception
There should be no more calls to any service method by the time a call to
begins. Specifically, this means that a
Server that this service is bound to should have
completed a call to the
method, and all future incoming calls will be rejected.
public void registerReceiver(java.lang.String instructionId, CloseableFnDataReceiver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> observer)
The receiver is not required to be thread safe.
Receivers for successfully processed bundles must be unregistered. See
FnDataService.unregisterReceiver(java.lang.String) for details.
Any failure during
FnDataReceiver.accept(T) will mark the provided
instructionId as invalid and will ignore any future data. It is expected that if a bundle
fails during processing then the failure will become visible to the
during a future
public void unregisterReceiver(java.lang.String instructionId)
It is expected that if a bundle fails during processing then the failure will become visible
FnDataService during a future
public BeamFnDataOutboundAggregator createOutboundAggregator(java.util.function.Supplier<java.lang.String> processBundleRequestIdSupplier, boolean collectElementsIfNoFlushes)
BeamFnDataOutboundAggregatorfor buffering and sending outbound data and timers over the data plane. It is important that
BeamFnDataOutboundAggregator.sendOrCollectBufferedDataAndFinishOutboundStreams()is called on the returned BeamFnDataOutboundAggregator at the end of each bundle. If collectElementsIfNoFlushes is set to true,
BeamFnDataOutboundAggregator.sendOrCollectBufferedDataAndFinishOutboundStreams()returns the buffered elements instead of sending it through the outbound StreamObserver if there's no previous flush.
Closing the returned aggregator signals the end of the streams.
The returned aggregator is not thread safe.