Netty Framework는 Multi Thread를 지원하고 Event loop 기반 위에서 수행됩니다. 









특징

- 네티의 이벤트는 채널에서 발생

- 채널에 event handler를 여러개 추가할 수 있다.

- multi core CPU 효율적으로 사용

- 이벤트 루프 객체는 이벤트 큐를 가지고 이벤트가 큐에 쌓임

- 네티의 채널은 하나의 이벤트 루프에 등록됨, 다중 이벤트루프 또한 지원

- 네티의 이벤트는 발생순서와 처리순서가 항상 일치한다.

- 이벤트 처리를 위해 SingleThreadEventExecutor 사용







=> 간단하게 요약하면, 클라이언트와 서버간의 입출력 이벤트는 채널에서 read/write 이벤트 루프객체 전달을 통해 처리된다,   






  


[아래 그림은 클라이언트에서 write 이벤트를 발생시키는 처리 과정이다.]





<Process>


1) 기본적으로 여러개의 쓰레드는 channelcontext 에 write 할 수 있다.


2) InboundHandlerAdapter는 채널파이프라인으로 전달된다. (파이프라인은 다음장에서.)



3) 채널에서 발생된 이벤트는 이벤트루프그룹 큐에 쌓이고 서버와 연결된 socket의 outputstream을 통해 write한다.












참고자료 : https://www.slideshare.net/krisjeong/going-asynchronous-with-netty-soscon-2015

+ Recent posts