일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spark
- scala
- intellij
- Storm
- 도메인주도설계
- Spring Batch
- hibernate
- nginx
- docker
- SBT
- 인텔리J
- elasticsearch
- elastic search
- Spring
- 제주
- Clean Code
- Spring Boot
- Hbase
- 엘라스틱서치
- Gradle
- Linux
- DDD
- Angular2
- hadoop
- design pattern
- Java
- hdfs
- 스프링 배치
- apache storm
- Spring XD
- Today
- Total
목록Methdology/IO (3)
욱'S 노트

Spring MVC스프링 MVC의 기본동작은 ThreadPerRequest이다. Sync/Blocking1 Request -> 1 Thread많은 수의 Thread Pool을 사용한다.스레드 수가 너무 많으면 컨텍스트 스위칭에 대한 비용이 증가스레드 수가 너무 적으면 스레드 고갈로 인한 지연이 발생하는 문제점을 가지고 있다.처리 순서는 다음과 같다.일단 요청이 들어오면 스레드를 하나 할당 받는다.요청은 Filter -> DispatcherServlet -> Controller로 전달되고, 해당 스레드는 IO작업이 발생하더라도 블락킹된다.Spring WebFlux스프링 WebFlux의 동작 방식은 EventLoop이다. Async/Non-BlockingN Request -> 1 ThreadN: M 이지만 ..

에코서버 작성간단한 에코서버를 작성해보자. 아래 코드에서는 한번에 하나의 요청만을 처리하게 된다.import java.net.ServerSocketimport java.net.Socketobject BlockingServer { @JvmStatic fun main(args: Array) { val server = ServerSocket(8080) while (true) { val socket = server.accept() handleRequest(socket) } } fun handleRequest(socket: Socket) { println(Thread.currentThread().name..

IO 모델이란?어플리케이션에서 디바이스간 데이터 전송 및 수신을 위해서는 OS의 시스템콜이 발생한다.write system call의 경우, OS 커널은 전송하고자하는 데이터를 소켓 전송 버퍼에 복사하고, read system call의 경우 OS 커널은 수신 받은 데이터를 소켓 수신 버퍼에 복사한다.Linux IO 기본개념File Descriptor리눅스 혹은 유닉스 계열의 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념이다. 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이며 프로세스에서 열린 파일의 목록을 관리하는 테이블의 인덱스의 인덱스이다. 리눅스(유닉스) 에서는 모든것을 파일로 취급한다.(파일, 소켓 등) 각각의 프로세스는 File desciptors의 테이블을 가지고 있다.IO ..