Package io.grpc.xds

Class XdsServerBuilder

java.lang.Object
io.grpc.ServerBuilder<XdsServerBuilder>
io.grpc.ForwardingServerBuilder<XdsServerBuilder>
io.grpc.xds.XdsServerBuilder

@ExperimentalApi("https://github.com/grpc/grpc-java/issues/7514") public final class XdsServerBuilder extends io.grpc.ForwardingServerBuilder<XdsServerBuilder>
A version of ServerBuilder to create xDS managed servers.
  • Field Details

    • AS_LARGE_AS_INFINITE

      private static final long AS_LARGE_AS_INFINITE
    • delegate

      private final io.grpc.netty.NettyServerBuilder delegate
    • port

      private final int port
    • xdsServingStatusListener

      private XdsServerBuilder.XdsServingStatusListener xdsServingStatusListener
    • isServerBuilt

      private AtomicBoolean isServerBuilt
    • filterRegistry

      private final FilterRegistry filterRegistry
    • xdsClientPoolFactory

      private XdsClientPoolFactory xdsClientPoolFactory
    • drainGraceTime

      private long drainGraceTime
    • drainGraceTimeUnit

      private TimeUnit drainGraceTimeUnit
  • Constructor Details

    • XdsServerBuilder

      private XdsServerBuilder(io.grpc.netty.NettyServerBuilder nettyDelegate, int port)
  • Method Details

    • delegate

      @Internal protected io.grpc.ServerBuilder<?> delegate()
      Specified by:
      delegate in class io.grpc.ForwardingServerBuilder<XdsServerBuilder>
    • xdsServingStatusListener

      public XdsServerBuilder xdsServingStatusListener(XdsServerBuilder.XdsServingStatusListener xdsServingStatusListener)
      Set the XdsServerBuilder.XdsServingStatusListener to receive "serving" and "not serving" states.
    • drainGraceTime

      public XdsServerBuilder drainGraceTime(long drainGraceTime, TimeUnit drainGraceTimeUnit)
      Sets the grace time when draining connections with outdated configuration. When an xDS config update changes connection configuration, pre-existing connections stop accepting new RPCs to be replaced by new connections. RPCs on those pre-existing connections have the grace time to complete. RPCs that do not complete in time will be cancelled, allowing the connection to terminate. Long.MAX_VALUE nano seconds or an unreasonably large value are considered infinite. The default is 10 minutes.
    • forPort

      public static io.grpc.ServerBuilder<?> forPort(int port)
    • forPort

      public static XdsServerBuilder forPort(int port, io.grpc.ServerCredentials serverCredentials)
      Creates a gRPC server builder for the given port.
    • build

      public io.grpc.Server build()
      Overrides:
      build in class io.grpc.ForwardingServerBuilder<XdsServerBuilder>
    • xdsClientPoolFactory

      XdsServerBuilder xdsClientPoolFactory(XdsClientPoolFactory xdsClientPoolFactory)
    • overrideBootstrapForTest

      public XdsServerBuilder overrideBootstrapForTest(Map<String,?> bootstrapOverride)
      Allows providing bootstrap override, useful for testing.
    • transportBuilder

      public io.grpc.ServerBuilder<?> transportBuilder()
      Returns the delegate NettyServerBuilder to allow experimental level transport-specific configuration. Note this API will always be experimental.