public class BeamFnDataGrpcMultiplexer
extends java.lang.Object
implements java.lang.AutoCloseable
Endpoints.ApiServiceDescriptor
.
Multiplexes data for inbound consumers based upon their individual org.apache.beam.model.fnexecution.v1.BeamFnApi.Target
s.
Multiplexing inbound and outbound streams is as thread safe as the consumers of those streams. For inbound streams, this is as thread safe as the inbound observers. For outbound streams, this is as thread safe as the underlying stream observer.
TODO: Add support for multiplexing over multiple outbound observers by stickying the output location with a specific outbound observer.
Constructor and Description |
---|
BeamFnDataGrpcMultiplexer(org.apache.beam.model.pipeline.v1.Endpoints.ApiServiceDescriptor apiServiceDescriptor,
OutboundObserverFactory outboundObserverFactory,
OutboundObserverFactory.BasicFactory<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements,org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> baseOutboundObserverFactory) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
org.apache.beam.vendor.grpc.v1p26p0.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> |
getInboundObserver() |
org.apache.beam.vendor.grpc.v1p26p0.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> |
getOutboundObserver() |
<T> void |
registerConsumer(LogicalEndpoint inputLocation,
java.util.function.BiConsumer<org.apache.beam.vendor.grpc.v1p26p0.com.google.protobuf.ByteString,java.lang.Boolean> bytesReceiver) |
java.lang.String |
toString() |
public BeamFnDataGrpcMultiplexer(@Nullable org.apache.beam.model.pipeline.v1.Endpoints.ApiServiceDescriptor apiServiceDescriptor, OutboundObserverFactory outboundObserverFactory, OutboundObserverFactory.BasicFactory<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements,org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> baseOutboundObserverFactory)
public java.lang.String toString()
toString
in class java.lang.Object
public org.apache.beam.vendor.grpc.v1p26p0.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> getInboundObserver()
public org.apache.beam.vendor.grpc.v1p26p0.io.grpc.stub.StreamObserver<org.apache.beam.model.fnexecution.v1.BeamFnApi.Elements> getOutboundObserver()
public <T> void registerConsumer(LogicalEndpoint inputLocation, java.util.function.BiConsumer<org.apache.beam.vendor.grpc.v1p26p0.com.google.protobuf.ByteString,java.lang.Boolean> bytesReceiver)
public void close()
close
in interface java.lang.AutoCloseable