mirror of https://github.com/grpc/grpc-java.git
alts: add experimental keepalive (#12076)
This commit is contained in:
parent
e772265530
commit
165e47699f
|
|
@ -21,6 +21,7 @@ import io.grpc.Channel;
|
||||||
import io.grpc.ClientCall;
|
import io.grpc.ClientCall;
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.grpc.MethodDescriptor;
|
import io.grpc.MethodDescriptor;
|
||||||
|
import io.grpc.internal.GrpcUtil;
|
||||||
import io.grpc.internal.SharedResourceHolder.Resource;
|
import io.grpc.internal.SharedResourceHolder.Resource;
|
||||||
import io.grpc.netty.NettyChannelBuilder;
|
import io.grpc.netty.NettyChannelBuilder;
|
||||||
import io.netty.channel.EventLoopGroup;
|
import io.netty.channel.EventLoopGroup;
|
||||||
|
|
@ -45,6 +46,9 @@ final class HandshakerServiceChannel {
|
||||||
return new ChannelResource(handshakerAddress);
|
return new ChannelResource(handshakerAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final boolean EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS =
|
||||||
|
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS", false);
|
||||||
|
|
||||||
private static class ChannelResource implements Resource<Channel> {
|
private static class ChannelResource implements Resource<Channel> {
|
||||||
private final String target;
|
private final String target;
|
||||||
|
|
||||||
|
|
@ -57,12 +61,16 @@ final class HandshakerServiceChannel {
|
||||||
/* Use its own event loop thread pool to avoid blocking. */
|
/* Use its own event loop thread pool to avoid blocking. */
|
||||||
EventLoopGroup eventGroup =
|
EventLoopGroup eventGroup =
|
||||||
new NioEventLoopGroup(1, new DefaultThreadFactory("handshaker pool", true));
|
new NioEventLoopGroup(1, new DefaultThreadFactory("handshaker pool", true));
|
||||||
ManagedChannel channel = NettyChannelBuilder.forTarget(target)
|
NettyChannelBuilder channelBuilder =
|
||||||
|
NettyChannelBuilder.forTarget(target)
|
||||||
.channelType(NioSocketChannel.class, InetSocketAddress.class)
|
.channelType(NioSocketChannel.class, InetSocketAddress.class)
|
||||||
.directExecutor()
|
.directExecutor()
|
||||||
.eventLoopGroup(eventGroup)
|
.eventLoopGroup(eventGroup)
|
||||||
.usePlaintext()
|
.usePlaintext();
|
||||||
.build();
|
if (EXPERIMENTAL_ALTS_HANDSHAKER_KEEPALIVE_PARAMS) {
|
||||||
|
channelBuilder.keepAliveTime(10, TimeUnit.MINUTES).keepAliveTimeout(10, TimeUnit.SECONDS);
|
||||||
|
}
|
||||||
|
ManagedChannel channel = channelBuilder.build();
|
||||||
return new EventLoopHoldingChannel(channel, eventGroup);
|
return new EventLoopHoldingChannel(channel, eventGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue