org.jboss.netty를 사용하여 게임 서버를 코딩하고 있습니다. 솔직히 말해서 TCP/IP 어플리케이션을 코딩 할 때가 처음입니다.org.jboss.netty가 갑자기 서비스를 중단합니다.
Netty가 갑자기 처리기에서 내 함수 호출을 중지합니다. 유휴 연결을 걷어차 기 위해 다음 줄을 추가하려고 시도했습니다.
LINE 1 TO PIPELINE : pipeline.addLast("timeout", new IdleStateHandler(idleTimer, 82 , 0, 0));
LINES TO HANDLER :
public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
super.channelIdle(ctx, e);
ctx.getChannel().close();
}
여전히 동일한 문제에 직면하고 있습니다.
이 게임 서버에서는 1800 클라이언트에 메시지를 보내는 3 초마다 예기치 않은 작업 (별도의 executerthread 풀 사용)이 있습니다. 이것이 문제가 될 수 있습니까? 이런 종류의 문제에 직면 해본 적이 있습니까?
클라이언트에 주기적으로 데이터를 푸시하는 것이 문제 일 수 있습니다. Netty에서 스레드 풀을 사용할 때 연결 속도가 느리거나 네트워크가 잘못되면 긴 전송 대기열이 생겨 풀에서 사용 가능한 스레드 수에 영향을 줄 수 있습니다. 어떻게 생각해 ?
답해 주셔서 감사합니다. 나는 jstack 명령을 안다. 실제로는 어떻게 든 작동하는 스레드가 차단되고 있다는 사실입니다. jstack이 다시 발생하면 실제 문제를 파악하는 데 도움이됩니다. – WorM