0

在 Windows 上,我有一个 grpc 服务器,每秒抛出此 INFO 级堆栈跟踪:

2017-10-09T20:11:00,366 - INFO  - [grpc-default-worker-ELG-1-13:io.grpc.netty.NettyServerTransport:grpc.netty.NettyServerTransport@159] - {} - Transport failed
java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:1.8.0_131]
    at sun.nio.ch.SocketDispatcher.read(Unknown Source) ~[?:1.8.0_131]
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) ~[?:1.8.0_131]
    at sun.nio.ch.IOUtil.read(Unknown Source) ~[?:1.8.0_131]
    at sun.nio.ch.SocketChannelImpl.read(Unknown Source) ~[?:1.8.0_131]
    at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:288) ~[    ]
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1106) ~[netty-buffer-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372) ~[netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) [netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) [netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) [netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) [netty-transport-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.14.Final.jar:4.1.14.Final]
    at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) [netty-common-4.1.14.Final.jar:4.1.14.Final]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]

这可能与登录https://github.com/grpc/grpc-java/issues/1768的内容相同

再一次,我只在 Windows 上收到此错误!

无论此问题如何,该应用程序似乎都可以正常运行。

当我使用 io.grpc.Server 启动一个简单的“hello world”应用程序时,我看不到这个 INFO 堆栈跟踪。

但是当我使用我的真实应用程序时,它在 grpc 服务器和在应用程序期间保持打开状态的码头服务器之间打开了双向 http2 流连接......我每秒收到一次这条消息,淹没了我的日志。

NettyServerTransport将日志记录转为水平是否安全WARN?还是我应该担心这条消息的频率?

4

1 回答 1

0

我发现这条消息的出现是因为第三方 Java 应用程序上的 tcp 心跳检查器,我们使用它来查看我的服务是否启动。

它发出InetSocketAddress(ip, port)请求以检查 http2 端口是否仍在响应。

每次它执行此操作(仅在 Windows 上)时,它都会丢弃令人讨厌的堆栈跟踪。调查原因。

创建的问题:https ://github.com/nddipiazza/grpc-java-bidirectional-streaming-example

于 2017-10-11T14:49:21.337 回答