일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- covariant
- flink
- Perfect Watermarks
- lambda
- flink watermarks
- HDFS
- ingestion time
- Heuristic Watermark
- watermarks
- 공변
- watermark
- coroutines
- Hadoop
- Coroutine
- contravariant
- processing time
- 불공변
- kotlin
- flink watermark
- Stream
- Generic
- Generics
- java
- 가변성
- apache flink
- Perfect Watermark
- event time
- Heuristic Watermarks
- MapReduce
- Today
- Total
목록개발/기타 (5)
mm Home
Spring web-flux에서 Netty가 defualt 컨테이너로 사용된다.그 동안 Servlet 컨테이너로 톰캣만 이용해서 Netty에 대해서 잘 몰랐었다.Netty가 무엇인지 어떻게 사용되는지에 대해서 알아보자.Netty를 이용한 전반적인 개발 이야기할 것은 아니고.. web-flux에서 어떻게 사용되었는지를 위해 이해하는 정도로만 공부해보았다. 예전에는.. 먼저 전통적인 네트워크 프로그래밍에서는 하나의 Request를 할당하여 하나의 스레드를 할당하여 소켓을 열었다.(Blocking) 아래와 같은 코드로 표현할 수 있을 것이다. ServerSocket serverSocket = new ServerSocket(8080); Socket clientSocket = serverSocket.accept(..
최근 자바 9에서는 Reactive Streams API 가 추가되었다. 비동기 논블록킹의 개발방식이 떠오르면서 자바에서도 도입한것 같다. Reactive가 왜 나오게 되었는지, 어떤 개발 방식인지 살펴 보자. 간단하게 자바 9로 예제도. 기존의 절차지향적인 개발방식에서 Reactive 프로그래밍 패러다임이 떠오름.왜 Reactive ?기존의 절차지향적이고 쓰레드풀을 이용한 처리의 문제점.블록킹이 걸려있는 상태에서 대기하고 있는 쓰레드의 성능 문제 (특히 MSA 같은 서비스에서 API 콜 수행시 부하도 없이 쓰레드를 붙잡고 있는 상황 연출)쓰레드의 변경마다 발생하는 context-switch 비용한정적인 자원의 쓰레드 풀. 쓰레드간 공유하는 자원으로 인한 side-effect 가능성.Event-drive..
예전에 공부했던 내용을 정리~ HTTP 동작 순서 일반적으로 표현하는 클라이언트는 브라우저가 될 것이고, 서버는 웹 서버 혹은 웹 어플리케이션 서버가 될 것이다. 1. 사용자가 웹 브라우저에 URL 주소 입력 2. DNS 서버에 웹 서버의 호스트 이름을 IP 주소로 변경 요청한다. 3. 웹 서버와 TCP 연결 시도. - 3 way Handshake : 클라이언트 - 서버간 신뢰성있는 연결을 하기 위해 3번의 패킷 교환 과정이다. SYN : 클라이언트가 서버로 임의로 생성한 시퀀스 번호를 전달한다 SYN ACK : 서버는 클라이언트에서 전달한 시퀀스를 +1 시켜서 전달한다 (서버의 패킷을 정상 수신했다는 신호) ACK : 클라이언트가 서버에서 전달해준 시퀀스를 +1 시켜서 다시 전달함 (서버-클라 간 패킷..
OSI 7 은 대학생때 배웠지만 역시나 기억이 나지 않으므로.. 정리를 한다. OSI 7 이 왜 나왔을까?TCP/IP Model(4계층) 에서 보다 표준화, 학습도구, 문제 해결을 위하여 계층간 독립성을 가지기 위해서 개발.계층을 더 세분화함으로써 계층간 독립성을 구분시킬 수 있고, 독립성을 가지는 각 계층으로 인해 문제 해결도 보다 빠르게 할 수 있을 것이다. 물리계층 (1계층) - 전송 매체의 물리적 인터페이스 기술- 통신 케이블로 전기 신호 전송에 관한 인터페이스- 물리 계층이기 떄문에 데이터 전달만 할뿐 알고리즘 없음 (소프트웨어적 구현이 없는 유일한 계층) 데이터링크 계층 (2계층)- 물리계층 바로 위의 계층이다보니, 물리적 오류없이 한 장치에서 다른 장치로 프레임(데이터)을 전달하는 역할- 송..
Neflix 에서 만든 오픈소스. 사내에서 Hystrix를 사용하고 있는 프로젝트가 꽤 있길래 좀 살펴보았다. Hystrix 란? 공식 페이지에 많은 설명이 쓰여있지만.. 그냥 가볍게 사용해본 개인적인 느낌으로는 '분산 환경에서의 안정적인 서비스를 지원해주는 라이브러리'라고 생각한다. 그 안정적인 서비스를 지원해주는 기능으로 무엇이 있는지는 밑에 나열해볼 것이고... 추상적이지만 안정적인 서비스를 지원해주는 라이브러리가 어떤 느낌인지 예를 들어 설명해보겠다. 분산 환경에서 각 서비스별 의존성을 지니는 경우가 많다. 이를테면, 이벤트 서버에서 회원에 대한 조회를 할때 Membership 서버에 Request를 날리는 것과 같이 의존성이 있을 수 있다. 만약 멤버쉽 서버(외부 자원)의 응답이 늦어진다면, 이..