Netty 의 NioEventLoop.java 코드 중 핵심이 되는 run() 메서드 분석 MacOS 를 사용중이기 때문에 KqueueSelectorImpl.java 가 사용되었다. EventLoop.java 는 두가지를 처리한다. I/O : Channel 로 부터 발생한 Event 를 받아 I/O Non I/O : Task Queue 에 들어있는 Task 처리. NioEventLoop 생성 static { DEFAULT_EVENT_LOOP_THREADS = Math.max(1, SystemPropertyUtil.getInt( "io.netty.eventLoopThreads", NettyRuntime.availableProcessors() * 2)); if (logger.isDebugEnabled()) ..
1. Client 용 ChannelHandler 작성 public class NettyClientHandler extends SimpleChannelInboundHandler { @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { ctx.writeAndFlush(Unpooled.copiedBuffer("Woongs netty client!", CharsetUtil.UTF_8)); } @Override protected void channelRead0(ChannelHandlerContext ctx, ByteBuf msg) throws Exception { System.out.println("Client recei..
1. ChannelHanlder 작성 ChannelHandler 는 이벤트를 수신하고 이벤트에 해당하는 비지니스 로직을 구현할 수 있는 컴포넌트 Netty Server 는 Inbound 이벤트에 반응해야 하므로 ChannelInboundHandler 인터페이스를 구현 @ChannelHandler.Sharable public class NettyServerHandler extends ChannelInboundHandlerAdapter { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { // msg 가 들어올때마다 호출 ByteBuf in = (ByteBuf) msg; System.out.pr..
Netty 는 비동기식 이벤트 기반 네트워킹 프레임워크 1. Java IO 라이브러리의 단점 Socket 하나당 Thread 하나가 할당되어 Stack Memory 에 Thread 가 쌓임. Client 가 요청을 보내올때까지 대기상태인 Thread는 리소스 낭비. 분당 수십만의 요청을 받는 서버라면 Context Switching 비용이 증가. 2. Java NIO 의 등장 Selector 를 통해 하나의 Thread 가 여러개의 요청 수행 가능 DitrectByteBuffer 를 사용해 OS -> JVM 으로 데이터를 가져오는 Overhead 와 가져온 데이터를 GC 해야하는 Overhead 제거 3. Netty 의 핵심 컴포넌트 Channel Callback Future EventHandler 3...
- Total
- Today
- Yesterday
- notify()
- ResultSet
- RoutePredication
- wait()
- DyanomoDB
- referencedColumnName
- MariaDB
- msyql-connector-java
- GlobalFilter
- rate limit
- N+1
- reactor
- getBoolean
- spring cloud gateway
- Flux
- circurit breaker
- AbstractMethodError
- RouteDefinition
- Lazy
- HashMap
- Seperate Chaining
- notifyAll()
- custom config data convertion
- router
- ConcurrentHashMap
- aurora
- mariada-connector
- dynamodb
- reative
- mariadb-connector-j
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |