본문 바로가기

netty3

3. BootStrap 지금까지 해본것을 정리한다면, 아래와 같은 그림을 그립니다. 하지만 ServerBootStrap(쉽게 네티를 사용할수있도록 로딩해주는 네티에서 지원하는 클래스)에서는 EventLoopGroup 이 2개입니다. EventLoopGroup1 : NioServerSocketChannel 을 갖고있는 eventLoopGroup을 갖고있습니다. 요청이 오면 eventLoop를 한개 꺼내온뒤, NioSocketChannel 을 생성하는 역할을 합니다. EventLoopGroup2 : 요청이 온 뒤 (channelRead 이벤트) 에 생성된 NioSocketChannel 을 등록할 수 있는 eventLoopGroup 을 갖고있습니다. ServerBootStrap.class > channelRead 함수에 등록과정이 .. 2021. 4. 13.
2. EventLoopGroup 1. EventLoopGroup Interface (io.netty.channel) netty 에는 EventLoopGroup 이라는 인터페이스가 있으며 EventGroup 은 여러개의 EventLoop를 갖고있는 풀방식을 취합니다. 이 중에서, nio을 처리하는 NioEventLoopGroup 을 이용해서 간단한 예제를 구현해보겠습니다. @Slf4j public class EventLoopGroupStudy { public static void main(String[] args) { EventLoopGroup eventLoopGroup = new NioEventLoopGroup(); for(int i = 0 ; i < 100 ; i++) { int x = i; eventLoopGroup.next().e.. 2021. 4. 10.
1. Java Channel 1. Java Channel ( java.nio.channels ) 소켓, 파일, 하드웨어 장치 등에 연결할 수 있는 연결점(nexus) 입니다. 이 중에서, 소켓 (socketChannel) 에 대해서 알아보겠습니다. SocketChannel 에는 ServerSocketChannel 과 SocketChannel 두가지 종류가 있습니다. ServerSocketChannel 서버측에서 사용된다. 서버측의 포트와 바인딩 (bind()) 한 뒤에, 연결요청 (connect()) 이 오면 SocketChannel을 생성하여 클라이언트와 통신한다. SocketChannel 클라이언트, 서버측에서 모두 사용되며 데이터 read/write 등의 기능을 한다. ※ 바인딩 (bind()) : "자신의 운영체제에 있는 포.. 2021. 4. 10.