ElasticSearch開発総括(六)—exception caught on transport layer[....]closing connection
2585 ワード
Elasticsearchクラスタバージョン5.6.10,Javaコード中のMaven導入バージョン5.6.10,TransportClientを使用してESクラスタに接続し、このエラーが発生しました.
1.このエラーが発生し、様々な検索を経て、バージョンの不一致による問題であることが判明しました.
(1)クラスタバージョンとコードバージョンは一致するが、他のパケットを参照すると競合する可能性がある.
(2)プロジェクトがMaven管理である場合は、推奨11個のIdea無料ユーティリティプラグインおよびプラグインオフラインインストール方法の「(7)MavenRunHelper」プラグインを使用して競合を監視することをお勧めします.
2.エラーログ後に次のエラーが発生した場合
java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.6.10]
これは直接パケットの衝突による問題であることがわかります.
3.その他の問題
ローカルで単一ステップデバッグを行い、clientメソッドの取得を呼び出します.main関数で呼び出すと、関数呼び出しが完了し、メインスレッド呼び出しが終了し、クラスタにも上記のエラーが報告されます.
これは、clientを取得した後、スレッドを勝手に閉じないで、スレッドに呼び出しを終了させ、必要に応じて閉じる関数を呼び出し、スレッド呼び出しを終了させることを意味します.
[2019-03-10T15:16:21,269][WARN ][o.e.t.n.Netty4Transport ] [master] exception caught on transport layer [[id: 0x0844f145, L:/127.0.0.1:9300 - R:/127.0.0.1:58381]], closing connection
java.io.IOException: 。
at sun.nio.ch.SocketDispatcher.read0(Native Method) ~[?:?]
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) ~[?:?]
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276) ~[?:?]
at sun.nio.ch.IOUtil.read(IOUtil.java:245) ~[?:?]
at sun.nio.ch.IOUtil.read(IOUtil.java:223) ~[?:?]
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358) ~[?:?]
at io.netty.buffer.PooledHeapByteBuf.setBytes(PooledHeapByteBuf.java:261) ~[netty-buffer-4.1.13.Final.jar:4.1.13.Final]
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1100) ~[netty-buffer-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:372) ~[netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:123) [netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644) [netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:544) [netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498) [netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458) [netty-transport-4.1.13.Final.jar:4.1.13.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.13.Final.jar:4.1.13.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
1.このエラーが発生し、様々な検索を経て、バージョンの不一致による問題であることが判明しました.
(1)クラスタバージョンとコードバージョンは一致するが、他のパケットを参照すると競合する可能性がある.
(2)プロジェクトがMaven管理である場合は、推奨11個のIdea無料ユーティリティプラグインおよびプラグインオフラインインストール方法の「(7)MavenRunHelper」プラグインを使用して競合を監視することをお勧めします.
2.エラーログ後に次のエラーが発生した場合
java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.6.10]
これは直接パケットの衝突による問題であることがわかります.
3.その他の問題
ローカルで単一ステップデバッグを行い、clientメソッドの取得を呼び出します.main関数で呼び出すと、関数呼び出しが完了し、メインスレッド呼び出しが終了し、クラスタにも上記のエラーが報告されます.
これは、clientを取得した後、スレッドを勝手に閉じないで、スレッドに呼び出しを終了させ、必要に応じて閉じる関数を呼び出し、スレッド呼び出しを終了させることを意味します.