Elasticsearch Exception:Message not fully read (response) for requestId

로 컬 에서 Netty + Elasticsearch 테스트 폼 을 사용 하여 데이터 조 회 를 요청 합 니 다. 이상 이 없습니다.프로젝트 패 키 지 를 서버 에 업로드 하여 실행 합 니 다. 페이지 요청 후 이상 이 발생 하여 연결 이 닫 힙 니 다.
이벤트: 프론트 데스크 는 Netty 를 통 해 자원 을 요청 하고, Netty 백 스테이지 는 프론트 데스크 에서 요청 한 JSON 을 통 해 ES 에 데 이 터 를 조회 하여 이상 이 발생 합 니 다.
이상 상황:
21:39:46,019  WARN org.elasticsearch.transport.netty:752 - [Jeanne-Marie Beaubier] exception caught on transport layer [[id: 0x8ed9a041, /xx.xx.xx.xxx:37506 => /xx.xx.xx.xx:9300]], closing connection
java.lang.IllegalStateException: Message not fully read (response) for requestId [120], handler [org.elasticsearch.action.TransportActionNodeProxy$1@4448469c], error [false]; resetting
        at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:145)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
        at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
        at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
        at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
        at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
        at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

원인: 로 컬 Maven 설정 에 Elasticsearch 2.1.0 의존 및 Netty 의존 을 도입 합 니 다. 프로젝트 가 실 행 될 때 Elasticsearch 바 텀 은 netty 관련 인 터 페 이 스 를 호출 하고 서버 에 있 는 Elasticsearch (2.1.0) 는 배경 에서 실 행 됩 니 다. netty 관련 서 비 스 를 불 러 옵 니 다.둘 이 동시에 존재 하여 데이터 전송 에 문제 가 생 겼 다.
해결 방법: Maven 을 통 해 jar 가방 을 칠 때 Elasticsearch 와 관련 된 jar 가방 을 제외 하고 jar 가방 에 만 의존 합 니 다.서버 에서 실행 시 class 설정 을 통 해path 및 cp 명령 은 서버 의 ES 관련 jar 패 키 지 를 가 져 오고 다시 실행 하면 됩 니 다.
서버. sh 파일 변경 설정:
CLASS_PATH=$APP_HOME/ES-NETTY-WEB-0.0.0-beta.jar:/usr/local/elasticsearch/lib/*
JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS -cp $CLASS_PATH $APP_MAINCLASS $APP_HOME/config.properties >/dev/null 2>&1 &"

좋은 웹페이지 즐겨찾기