代码之家  ›  专栏  ›  技术社区  ›  anonymous

Bloom RPC响应:“错误”:“14不可用:收到GOAWAY”

  •  0
  • anonymous  · 技术社区  · 3 年前

    我是gRPC与SpringBoot集成的新手。 在spring boot应用程序中,我创建了一个模块并定义了它。里面有原型。 我已经编译了proto文件并生成了类文件。

    我已经在服务器中添加了这个proto的jar,并创建了一个api来接受来自客户端的请求。

    我已经尝试从bloom rpc调用服务器,作为响应,我得到了

    "error": "14 UNAVAILABLE: GOAWAY received"
    

    原始文件

    syntax = "proto3";
    
    package com.test.spi;
    
    option java_multiple_files = true;
    option java_package = "com.test.spi";
    option java_outer_classname = "RequestTest";
    
    message Request{
      Header head = 1;
      Body body = 2;
    
      message Header {
        string version = 1;
      }
    
      message Body {
          string type = 1;
      }
    }
    
    message Response{
      Header head = 1;
      Body body = 2;
    
      message Header {
        string version = 1;
      }
    
      message Body {
        string desc = 1;
      }
    }
    
    service Service {
      rpc testApi(Request) returns (Response);
    }
    

    波姆。xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>test-service</artifactId>
            <groupId>com.test</groupId>
            <version>0.1-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>grpc-contract</artifactId>
        <packaging>jar</packaging>
        <name>grpc-contract</name>
        <version>1.0.2-SNAPSHOT</version>
        <properties>
            <spring.boot.dependencies.version>2.5.2</spring.boot.dependencies.version>
            <org.projectlombok.version>1.18.20</org.projectlombok.version>
            <io.grpc.version>1.37.0</io.grpc.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty</artifactId>
                <version>${io.grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>4.0.40.Final</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>${io.grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>${io.grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>net.devh</groupId>
                <artifactId>grpc-spring-boot-starter</artifactId>
                <version>2.12.0.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.grpc</groupId>
                        <artifactId>grpc-netty-shaded</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
        <distributionManagement>
            
        </distributionManagement>
        <build>
            <extensions>
                <extension>
                    <groupId>kr.motd.maven</groupId>
                    <artifactId>os-maven-plugin</artifactId>
                    <version>1.7.0</version>
                </extension>
            </extensions>
            <plugins>
                <plugin>
                    <groupId>org.xolstice.maven.plugins</groupId>
                    <artifactId>protobuf-maven-plugin</artifactId>
                    <version>0.6.1</version>
                    <configuration>
                        <protocArtifact>
                            com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier}
                        </protocArtifact>
                        <pluginId>grpc-java</pluginId>
    
                        <pluginArtifact>
                            io.grpc:protoc-gen-grpc-java:1.4.0:exe:${os.detected.classifier}
                        </pluginArtifact>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>compile-custom</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    服务JAVA

    
    import io.grpc.stub.StreamObserver;
    import net.devh.boot.grpc.server.service.GrpcService;
    
    @GrpcService
    public class RequestService extends RequestTestGrpc.RequestTestServiceImplBase {
    
        @Override
        public void testApi(Request request, StreamObserver<Response> responseObserver) {
            System.out.println("received request:-------------------");
            Response.Body body = Response.Body.newBuilder()
                    .setOrderId("1234567")
                    .build();
            Response response = Response.newBuilder()
                            .setBody(body)
                    .build();
            responseObserver.onNext(response);
            responseObserver.onCompleted();
        }
    }
    
    

    控制台输出

    2022-04-05 15:16:42.974 DEBUG 20008 --- [-worker-ELG-3-1] io.grpc.netty.NettyServerHandler         : [id: 0x8516478e, L:/0:0:0:0:0:0:0:1:9090 - R:/0:0:0:0:0:0:0:1:58123] OUTBOUND GO_AWAY: lastStreamId=2147483647 errorCode=2 length=0 bytes=
    2022-04-05 15:16:42.976 DEBUG 20008 --- [-worker-ELG-3-1] i.n.h.c.http2.Http2ConnectionHandler     : [id: 0x8516478e, L:/0:0:0:0:0:0:0:1:9090 - R:/0:0:0:0:0:0:0:1:58123] Sent GOAWAY: lastStreamId '2147483647', errorCode '2', debugData ''. Forcing shutdown of the connection.
    2022-04-05 15:16:42.977  INFO 20008 --- [-worker-ELG-3-1] i.g.n.NettyServerTransport.connections   : Transport failed
    
    java.lang.NullPointerException: null
        at java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1769) ~[na:na]
        at java.base/java.util.regex.Matcher.reset(Matcher.java:416) ~[na:na]
        at java.base/java.util.regex.Matcher.<init>(Matcher.java:253) ~[na:na]
        at java.base/java.util.regex.Pattern.matcher(Pattern.java:1147) ~[na:na]
        at java.base/java.util.Formatter.parse(Formatter.java:2608) ~[na:na]
        at java.base/java.util.Formatter.format(Formatter.java:2563) ~[na:na]
        at java.base/java.util.Formatter.format(Formatter.java:2517) ~[na:na]
        at java.base/java.lang.String.format(String.java:2747) ~[na:na]
        at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:122) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2HeadersDecoder.decodeHeaders(DefaultHttp2HeadersDecoder.java:136) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2FrameReader$HeadersBlockBuilder.headers(DefaultHttp2FrameReader.java:732) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2FrameReader$2.processFragment(DefaultHttp2FrameReader.java:476) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readHeadersFrame(DefaultHttp2FrameReader.java:484) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2FrameReader.processPayloadState(DefaultHttp2FrameReader.java:253) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2FrameReader.readFrame(DefaultHttp2FrameReader.java:159) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.Http2InboundFrameLogger.readFrame(Http2InboundFrameLogger.java:41) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.DefaultHttp2ConnectionDecoder.decodeFrame(DefaultHttp2ConnectionDecoder.java:173) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.Http2ConnectionHandler$FrameDecoder.decode(Http2ConnectionHandler.java:378) ~[netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:242) [netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:438) [netty-codec-http2-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:510) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:449) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:279) [netty-codec-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) [netty-transport-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-common-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.75.Final.jar:4.1.75.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.75.Final.jar:4.1.75.Final]
        at java.base/java.lang.Thread.run(Thread.java:844) [na:na]
    
    

    请帮我解决这个问题。

    0 回复  |  直到 3 年前