Akka Pulling Pattern
일반적인 시나리오
- Email 마켓팅 타겟 고객을 DB에서 읽는다. (Customer Target Read Actor) FAST
- Email 컨텐츠를 생성을 한다. (Email Content Create Actor) FAST
- Email를 보낸다. (Email Sender Actor) SLOW
- Actor를 이용하여 간단한 구조의 시스템을 제작하는 경우 위와 같은 시나리오의 시스템을 제작을 할수 있다.
- Email Send할때 속도가 느리기 때문에 Email를 보내는 Actor가 Mailbox가 Overflow가 되거나 GC로 인해 시스템이 정상 작동이 되지 않을수가 있다.
Pulling Pattern을 적용한 시나리오
- 작업을 하는 Worker Actor들이 있다.
- Worker Actor는 Email Content Create Actor와 Email Sender Actor를 사용한다.
- Worker Actor에게 할일을 주는 Coordinator Actor가 존재를 한다.
- Coordinator Actor는 Customer Target Read Actor를 사용하여 데이터를 Worker Actor로 전달한다.
- 사용자는 Coordinator Actor에서 Start 메시지를 보낸다.
- Coordinator Actor는 Worker Actor를 생성을 한다.
- Worker Actor는 Coordinator Actor에게 Work Request를 보낸다 (Customer Target Read Actor)
- Coordinator Actor는 Worker Actor에게 Work를 준다.
- Worker Actor는 Email Content Create Actor와 Email Send Actor를 이용하여 Email를 전송을 마친다.
- 끝난뒤 다시 Coordinator Actor에 Work Request를 보낸다.
- .... 작업이 끝날때 까지 반복.
- 상대적으로 복잡한 구조지만 Actor의 메일박스 Overflow가 되지 않게 처리를 할수가 있다.
'Programing > Akka' 카테고리의 다른 글
Akka Actor Hierarchy (0) | 2018.10.22 |
---|---|
Akka Actor Life Cycle (0) | 2018.10.21 |
Akka with Spring (0) | 2018.09.29 |
Akka Actor 개발팁 (0) | 2018.09.18 |
Akka Distributed Publish Subscribe in Cluster #3. Configuration (0) | 2018.09.11 |