具有 setReuseAddress(true) 的 gRPC Java 服务器?

gRPC Java server with setReuseAddress(true)?

我正在使用 Java 编写的 gRPC 服务器上工作。它使用 NettyServerBuilder 到 start/run 服务器。我想知道如何为服务器设置 setReuseAddress(true),以便它可以快速重启(在崩溃或维护重启时。)

这是当前启动:

import io.grpc.Server;
import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder;

//...

private Server server;

//...

server = NettyServerBuilder
                .forPort(port)
                .permitKeepAliveWithoutCalls(true)
                .permitKeepAliveTime(5, TimeUnit.SECONDS)
                .addService(this.queryService)
                .addService(this.commandService)
                .build();

这应该可以解决问题:

Server server = NettyServerBuilder
            .forPort(port)
            // ...
            .withChildOption(ChannelOption.SO_REUSEADDR, true)
            .build();