스프링 테스트에서 embedded redis 사용할 때 뜨는 로그..
971
작성자 없음
작성한 질문수 0
[lettuce-nioEventLoop-6-1] INFO io.lettuce.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset java.net.SocketException: Connection reset at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394) SocketChannelImpl.java:394 at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426) SocketChannelImpl.java:426 at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:254) PooledByteBuf.java:254 at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) AbstractByteBuf.java:1132 at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:357) NioSocketChannel.java:357 at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) AbstractNioByteChannel.java:151 at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) NioEventLoop.java:788 at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) NioEventLoop.java:724 at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) NioEventLoop.java:650 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) NioEventLoop.java:562 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) SingleThreadEventExecutor.java:997 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ThreadExecutorMap.java:74 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) FastThreadLocalRunnable.java:30 at java.base/java.lang.Thread.run(Thread.java:840)
스프링 테스트에서 embedded redis를 사용해 테스트하던 중에 이런 로그가 뜨네요...
에러는 아닌 것 같은데 정확히 뭘 하라는 건지 모르겠어요 ㅠㅠ
저 문구를 어떻게 하면 없앨 수 있을까요?....
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
kangmj815님 질문하신 내용에 대해 답변드리겠습니다.
스프링 테스트 중에 발생한 로그는 lettuce-core 라이브러리의 io.lettuce.core.protocol.CommandHandler가 예상치 못한 예외(java.net.SocketException: Connection reset)를 감지했음을 나타냅니다. 이 예외는 레디스 서버와의 네트워크 연결이 끊어졌을 때 발생할 수 있는데, 임베디드 레디스를 사용할 때 종종 볼 수 있는 현상입니다.
이 로그 메시지가 에러는 아니지만, 테스트 도중 연결 문제가 발생한 것으로 보입니다. 로그를 없애는 방법으로는 몇 가지가 있습니다:
임베디드 레디스 인스턴스가 제대로 시작되었는지 확인하십시오. 시간이 부족해서 연결이 끊길 수 있습니다. 인스턴스가 완전히 준비될 때까지 충분한 시간을 주는 것을 고려해보세요.
로깅 레벨을 조절하여 특정 클래스나 패키지의 로그 출력 레벨을 변경할 수 있습니다. 로그 발생 클래스에 대한 로깅 레벨을
ERROR로 설정하면INFO레벨 이하의 로그는 출력되지 않을 것입니다. 예를 들어,application.properties또는application.yml에서 다음 설정을 추가합니다:
logging.level.io.lettuce.core.protocol=ERROR
또는 YAML 형식으로는:
logging:
level:
io.lettuce.core.protocol: ERROR
레디스 커넥션에 관한 문제가 지속된다면, 연결 설정에 문제가 없는지 확인하거나, 임베디드 레디스가 아닌 실제 레디스 서버로 테스트를 해보는 것도 한 방법입니다.
테스트 환경의 안정성을 위해서 필요하다면 레디스 클라이언트 라이브러리를
lettuce에서jedis로 변경해보세요. Spring Boot는spring-boot-starter-data-redis에lettuce를 기본으로 사용하지만, 필요에 따라jedis로 변경할 수 있습니다.
위 방법 중 적합한 것을 시도해보시고, 로그 메시지가 계속 나타나거나 다른 문제가 발생한다면 추가적인 진단이 필요할 수 있습니다. 예를 들어, 테스트 코드에서 레디스 서버에 요청을 보내는 시점, 서버가 준비되어 있지 않을 경우 연결이 끊기면서 이러한 로그가 기록될 수 있습니다.
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
20
2
Redlock 알고리즘 관해 궁금한게 있습니다!
0
36
2
좋아요/조회수 카운팅 병목현상에 대해서 궁금한점이 있습니다.
0
30
2
Build 관련 문제 (테스트 관련 문제)
0
41
2
consumer에서 에러가 발생할 경우 데이터 유실 문의
0
35
2
게시글 테스트 데이터 삽입
0
43
2
강의가 검은 화면으로 나옵니다.
0
45
1
mysql 의 bitmap
0
33
1
주제영역3 데이타 조회 문의
0
32
2
인덱스 관련 질문 있습니다.
0
65
2
비관적 락 구현 방식 문의 건
0
67
2
백엔드 서버 코드 변경에서 프론트엔드 서버가 값을 파싱하지 못하는 문제
0
78
1
강사님 GETDEL 관련해서 질문 있습니다
0
86
2
비밀번호를 걸고 실행된 레디스 서버에 lua 스크립트를 등록하는 경우
0
74
2
보안 설정을 한 수강생들은 Connection Settings에 비밀번호를 넣어야 추가되네요
0
56
2
Redis Container 해킹
0
100
1
Redis Hash
1
83
1
Redis 큐
0
92
2
redis VS valkey
0
193
2
외부 api 처리 방안에 대하여 궁금한 점이 있습니다.
0
87
2
강의에서 작성한 코드 제공 문의
1
97
1
23강 5:38 부분 질문 있습니다!
0
43
1
23강 17초 부분 질문있습니다~
0
48
2
Split 전략 강의 중 질문 있어요
0
56
2





