Java netty / okhttp gRPC-клиент выбрасывает прерывистый режим UNAVAILABLE: исключение при попытке подключения - PullRequest
1 голос
/ 21 октября 2019

Я пытаюсь подключиться к серверу go с java GRPC клиентом (netty и okhttp). Но оба они выбрасывают НЕДОСТУПНО: исключение периодически.

Это случайность, и мы не знаем, что является причиной такого поведения. Мы обнаружили, что запрос не дошел до сервера go.

Используемая для подключения заглушка блокировки похожа на:

public SomeServiceGrpc.SomeServiceBlockingStub getBlockingStub() {

        ManagedChannel channel = OkHttpChannelBuilder
                .forAddress(configuration.getHost(), configuration.getPort())
                .useTransportSecurity()
                .keepAliveTime(1, TimeUnit.MINUTES)
                .keepAliveTimeout(5, TimeUnit.SECONDS)
                .intercept(deadlineInterceptor)
                .build();
        return SomeServiceGrpc.newBlockingStub(channel);
    }

Это библиотеки, используемые для okhttp и protobuf:

    compile 'io.grpc:grpc-okhttp:1.21.0'
    compile 'io.grpc:grpc-protobuf:1.20.0'
    compile 'io.grpc:grpc-stub:1.20.0'

Эти библиотеки используютсядля netty и protobuf:

    compile group: 'io.grpc', name: 'grpc-netty', version: '1.22.1'
    compile group: 'io.netty', name: 'netty-handler', version: '4.1.35.Final'
    compile group: 'io.netty', name: 'netty-tcnative-boringssl-static', version: '2.0.25.Final'
    compile 'io.grpc:grpc-protobuf:1.20.0'
    compile 'io.grpc:grpc-stub:1.20.0'

Любая помощь или руководство приветствуются.

1 Ответ

1 голос
/ 23 октября 2019

Решено, добавив keepAliveWithoutCalls как true на стороне клиента и сервера.

...