Package io.grpc.xds

Class 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 Detail

      • 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
      • isServerBuilt

        private java.util.concurrent.atomic.AtomicBoolean isServerBuilt
      • drainGraceTime

        private long drainGraceTime
      • drainGraceTimeUnit

        private java.util.concurrent.TimeUnit drainGraceTimeUnit
    • Constructor Detail

      • XdsServerBuilder

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

      • delegate

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

        public XdsServerBuilder drainGraceTime​(long drainGraceTime,
                                               java.util.concurrent.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>
      • overrideBootstrapForTest

        public XdsServerBuilder overrideBootstrapForTest​(java.util.Map<java.lang.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.