오늘날 우리가 인터넷에서 서비스를 사용하는 방식은 데이터 전송을 비롯한 많은 스트리밍 데이터 인스턴스를 포함하고 있습니다.
그것이 다운로드 서비스이든,영화스트리밍 서비스이든 대용량의 데이터를 우리의 어플리케이션이 가진 메모리와 네트워크대역으로는
순간적으로 처리할수가 없습니다. 스트리밍은 항상 생산자와 소비자로 구분되어 있으며 어떻게 생산자와 소비자의 다양한 속도차이를
고려하여 잘처리하느냐에 대한 고민이 필요하여, Akka Stream은 이러한 스트림 처리를 위한 여러가지 장치를 제공합니다.
스트림처리
문제
- 강우량은 측정은 할수 있지만, 예측은 할수 없습니다. 이러한 비가 계속 내리며 저장탱크(버퍼)는 한계가 있습니다.
- 저장된 탱크의 물을 정제하여, 마실수 있을때가 될때 소비자에게 쉬지않고 계속 공급해야합니다.
생산된(비)를 지속적으로 소비를 하여 저장탱크가 터지지 않고, 소비자에게 물이 공급되어야하는 것이 이프로젝트에서 설명하고자하는 주요내용입니다.
해결 시나리오
- 비를 받는 저장탱크와, 정수에 사용되는 저장탱크 두개를 준비합니다.
- A : A작업자는, 쌓인 빗물을 작업자 탱크에게 지속적(1초) 으로 스트림을 흘려보냅니다.
- B : B작업자는 초당 10ml 마실수 있는 물을 만들어내고, 고객에게 서빙을 합니다.
- C : 소비자는 작업자가 무엇을하는지 관심이 없고 물이 생기면 마십니다.
참고링크: