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
를 통해 런타임에 수정할 수 있습니다.
'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 |
댓글