비동기의 다양한 의미
JeongSeulho
2023년 02월 13일
준비중...
클립보드로 복사
asynchronous programming
- 여러 작업을 동시에 실행하는 방법론
multiThreading
,non-blocking IO
등으로 실제 구현됨
멀티 스레딩은 다수의 스레드로 병렬 처리
non-blocking IO는 하나의 스레드가 IO 작업을 요청해두고 기다리는 동안 다른 작업 진행
asynchronous IO
비동기 IO란 구체적으로 어떤 것을 지칭하는지 맥락에 따라 상의
case 1
synchronous IO
:blocking IO
를 의미asynchronous IO
:non-blocking IO
를 의미
case 2
synchronous IO
: 요청 주체가 IO 완료까지 신경 써야할 때asynchronous IO
: 완료에대해 알림을 주거나callback
을 통해 처리
case 3
asynchronous IO
:blocking IO
를 다른 스레드에서 처리
백엔드 아키텍처에서 synchronous와 asynchronous
MSA에서 각 서비스가 API로 통신
- 만약 서비스 C에서 응답이 안오면 서비스 B와 A도 문제가 생길 수 있음
MSA에서 메세지 큐를 활용한 통신
- 각 서비스는 메세지 큐에
produce
,consume
하는 방식으로 통신 - 단, 일방적인 정보 전달에만 해당