springboot 통합 grpc 오류:io.grpc.StatusRuntime 예외:INTERNAL:연결 이 알 수 없 는 원인 으로 닫 혔 습 니 다.

springboot 통합 grpc 와 protobuf 를 사용 할 때 다음 과 같은 오류 가 발생 했 습 니 다.
io.grpc.StatusRuntimeException: INTERNAL: Connection closed with unknown cause
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:141)
at io.grpc.stub.ServerCalls$1$1.onHalfClose(ServerCalls.java:148)
at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:152)
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:227)
at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:208)

원인:일련의 io.grpc 의존 버 전이 일치 하지 않 습 니 다.
4.567917.저 는 앞에서 io.grpc 를 1.4.0 버 전 으로 사용 한 다음 에 위의 오 류 를 계속 보고 해 달라 고 요 청 했 기 때문에 다음 버 전 을 참고 할 수 있 습 니 다.저 는 1.11.0 으로 바 꾸 면 됩 니 다해결 방안:
  • 이하 설정 pom 의존 은 참고 할 수 있 습 니 다.결 과 는 정상적으로 연결 할 수 있 습 니 다
  • <!--  grpc protobuf-->
            <!-- protobuf  -->
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>3.6.1</version>
            </dependency>
            <dependency>
                <groupId>com.googlecode.protobuf-java-format</groupId>
                <artifactId>protobuf-java-format</artifactId>
                <version>1.2</version>
            </dependency>
            <!--grpc  -->
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty</artifactId>
                <version>1.11.0</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>1.11.0</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>1.11.0</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-all</artifactId>
                <version>1.11.0</version>
            </dependency>
            
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>4.1.22.Final</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-tcnative-boringssl-static</artifactId>
                <version>2.0.8.Final</version>
            </dependency>
    
            <!--grpc   -->
            <dependency>
                <groupId>net.devh</groupId>
                <artifactId>grpc-client-spring-boot-starter</artifactId>
                <version>1.3.0-RELEASE</version>
            </dependency>
    
    		<dependency>
                <groupId>com.google.api.grpc</groupId>
                <artifactId>proto-google-common-protos</artifactId>
                <version>1.0.0</version>
            </dependency>
    		
    		<plugin>
               <groupId>org.xolstice.maven.plugins</groupId>
                <artifactId>protobuf-maven-plugin</artifactId>
                <version>0.5.0</version>
                <configuration>
                    <protocArtifact>com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}</protocArtifact>
                    <pluginId>grpc-java</pluginId>
                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.11.0:exe:${os.detected.classifier}</pluginArtifact>
                    <!--   -->
                    <protoSourceRoot>${project.basedir}/src/main/proto</protoSourceRoot>
                    <!--   -->
                    <!--<outputDirectory>${project.build.directory}/generated-sources/protobuf/java</outputDirectory>-->
                    <outputDirectory>${project.basedir}/src/main/java</outputDirectory>
                    <!--       java      outputDirectory   ,    truefalse         -->
                    <clearOutputDirectory>false</clearOutputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <!--   mvn compile          -->
                        <phase>compile</phase>
                        <goals>
                            <!--  OuterClass -->
                            <goal>compile</goal>
                            <!--  Grpc -->
                            <goal>compile-custom</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    

    좋은 웹페이지 즐겨찾기