공부, 기록

BIO / NIO 본문

공부/소소한 개발

BIO / NIO

무는빼주세요 2022. 1. 22. 17:09

CONNECTOR : 데이터 패킷을 HttpServletRequest 객체로 변환한 후 Servlet 객체에 전달하는 역할

 

BIO Connector : JAVA의 기본적인 I/O 기술을 사용하는 커넥터.

접속자 한명당 하나의 스레드를 생성하는 구조. 커넥션이 닫힐 때까지 하나의 스레드는 특정 커넥션에 할당되어 있다. 리소스에 대한 낭비가 생기는 방식.

 

NIO Connector : 하나의 스레드가 동시에 많은 채널을 관리하는 방식. Selector에 의해 data 처리가 가능할 때만 스레드를 사용하기 때문에 유휴 상태로 낭비되는 스레드 또한 줄어든다.

NIO의 주요 구성요소는 Http11NioProtocol, Mapper, CoyoteAdapter 가 있다.

 

Http11NioProtocol : NioEndpoint Object와 Http11Connectionhadler Object를 가지며 NioEndpoint는

Http11NioProtocol 에서 socket을 얻고 처리하기 위한 주요 모듈이며 Http11Connectionhadler는 커넥션 프로세서 이다.

NioEndpoint의 내부 동작은 다음과 같다.

https://velog.io/@jihoson94/BIO-NIO-Connector-in-Tomcat

Acceptor : Event Queue의 producer 역할.

Poller : Event Queue의 Consumer 역할.

worker : Poller에 의해 넘겨받은 소켓을 프로세서 오브젝트로 캡슐화함

 

 

 

참고:

https://velog.io/@jihoson94/BIO-NIO-Connector-in-Tomcat

'공부 > 소소한 개발' 카테고리의 다른 글

EDA  (0) 2022.03.05
JAVA의 GC  (0) 2022.02.27
Kafka - 2  (0) 2021.12.19
Kafka - 1  (0) 2021.12.05
CORS  (0) 2021.12.04