일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트
- 스프링부트공부
- JPA 공부
- 프로그래머스
- 카프카
- 스프링
- nestjs
- 코테공부
- 기술공부
- DDD
- JPA스터디
- 알고리즘공부
- 스프링공부
- JPA공부
- K8S
- JPA예제
- 코테준비
- Axon framework
- querydsl
- 플러터 공부
- Flutter
- JPA
- 플러터 개발
- Kafka
- 스프링 공부
- nestjs스터디
- 기술면접공부
- 자바공부
- nestjs공부
- 자료구조공부
- Today
- Total
목록웹플럭스 (3)
DevBoi
가끔 깜빡깜빡하다가 아차차..하던것들 Spring Mvc Spring Mvc는 Thread per Request이다. 쓰레드풀의 하나의 쓰레드를 리퀘스트에 쓰는 것이다. 쓰레드 하나가 모든일을 사용하고, 중간에 이 과정은 block된다. 시스템 부하가 크다면, 단순히 외부 network IO를 처리하는 것 자체에 서버 속도 처리 spec이 달라진다는 것이 문제이다. Webflux는 netty 기반이고, nginx와 동일하게, 이벤트 루프를 사용하여, 쓰레드를 사용한다. 단적인 예는 위의 그림과 같다. 하나의 쓰레드에서 외부 Api를 호출하고, 이 과정이 끝나면 다음 테스크에서는 이벤트 루프의 응답을 받은 쓰레드에서 이어서 처리를 한다. 높은 처리가 가능한 이유는, 각 쓰레드당 free한 쓰레드가 많아진다..
1. Start.spring.io 접속, 몇몇 필요한 의존성들을 추가해주고, 해당 추가 사항을 바탕으로 프로젝트를 생성, 이클립스에서 해당 프로젝트를 오픈해준다. parent에서는 그룹아이디나 버전에 대한 정보가 들어가있다. 그리고 해당하위에는 java 버전, 또한 프로젝트 속성값들에 대한 내용들이 있다.
리액티브 프로그래밍을 써야할 정도의 대규모 서비스가 많지 않았다. 작은 서비스의 서버에서, 대규모에 대한 걸 처리하려면 단순히 서버를 더 투입하면 되지 라는 생각이지만 사실 요새는 그렇지 않다. 작은 스타트업도 대규모의 데이터를 처리해야한다. "기존 자원을 더 효율적이고 일관성 있게 사용하는 방법?" -> 리액티브 스트림이다.(수요 조절에 기반한다.) 논블로킹, 비동기 프로그래밍 모델 함수형 프로그래밍 스타일 스레드를 신경 쓸 필요 없는 동시성 또한 메소드 처리 이후에, doOnNext,doOnError,DoOnComplete 등을 사용해서, 해당 이벤트 이후를 핸들링 할수 있다. 리액티브 프로그래밍에서 가장 중요한 두개의 개념을 알아야한다. publisher - 서비스를 발급해주는 사람 subscrib..