본문 바로가기
netty

netty bootstrap 옵션

by 키르시스 2021. 5. 7.
728x90

netty bootstrap에는 여러가지 옵션들이 있다.

 

나는 이것들이 어떤옵션들인지도 모르고 그때그떄 개발할떄 필요에 의해서 주먹구구식으로 개발을 하였다.

 

이런식으로 개발을 하면, 결국 최상의 결과가 아닌 그저 완성만 된 결과물이 나오기 마련이다.

 

그러니 일단 여기에 나온 옵션들을 최대한 참고하길 바란다.

 

"io.netty.channel.ChannelOption.TCP_NODELAY"이 옵션은

 

Nagel 알고리즘을 꺼버리는 방법을 써야 합니다. 끄려면 setsockopt와 TCP_NODELAY 옵션을 함께 사용하면 됩니다.

 

Nagel 알고리즘은 한번쯤 찾아보시길 바랍니다.

 

다음으로

 

io.netty.channel.ChannelOption.SO_RCVBUF", io.netty.channel.ChannelOption.SO_SNDBUF" 이 두가지 옵션이 있습니다.

 

SO_RCVBUF와 SO_SNDBUF 옵션을 설정하면 커널의 수신 버퍼와 송신 버퍼의 크기를 조정할 수 있다. 보통 UDP에서 사

 

용, 보통 tcp에서는 크기가 지정되어서 오고가기 때문입니다.

 

io.netty.channel.ChannelOption.CONNECT_TIMEOUT_MILLIS" 이 옵션은 이름 그대로 입니다. 네티 타임아웃

 

io.netty.channel.ChannelOption.SO_KEEPALIVE",  이 옵션은 커널에서 상대방의 상태를 확인하는 패킷을 전송한다. 이 패

 

킷에 대해 상대방이 정상적이면 ACK 패킷을 전송한다. ACK 패킷으로 정상이라고 응답하는 경우 응용 프로그램에는 어

 

떠한 통보도 하지 않고 커널 간의 확인만으로 상대방이 살아 있음을 확인하고 마무리한다. 상대방으로부터 아무런 응답

 

이 없거나 RST 응답을 받으면 소켓을 자동으로 종료한다.

 

io.netty.channel.ChannelOption.SO_BROADCAST", 이것도 이름그래도 브로드 캐스팅 설정 입니다. UDP 설정입니다.

 

그리고 필수적으로 port설정과 byteorder설정도 꼭 해줘야 합니다.

 

이건 네티 설정은 아니지만, 자주 쓰는 설정이라서 적어놓겠습니다.

 

"org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"

 

corePoolSize = core의 pool size

 

maxPoolSize = ThreadPoolExecutor의 최대 풀 크기를 설정

 

queueCapacity = ThreadPoolExecutor의 BlockingQueue에 대한 용량을 설정합니다

 

allowCoreThreadTimeOut = 코어 스레드가 시간 초과되도록 허용할지 여부를 지정합니다. 이를 통해 0이 아닌 큐와 

 

결합하여도 동적으로 증가 및 축소 할 수 있습니다 (최대 풀 크기는 큐가 가득 차면 증가하기 때문입니다)

 

keepAliveSeconds = ThreadPoolExecutor의 Keep-alive 초를 설정합니다. 기본값은 60입니다. 이 설정은 예를 들어 JMX

 

를 통해 런타임에 수정할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'netty' 카테고리의 다른 글

vo get set 배열 실수  (0) 2021.05.07
java사용 유용한 꿀 팁!!!  (0) 2021.05.07
logback설정 방법!!  (0) 2021.05.07
서버 네트워크 어플리케이션을 네티로 작성  (0) 2021.05.07
netty tcp 통신시 패킷 검증  (0) 2021.05.07

댓글