Programing/Akka

Akka Pulling Pattern

BUST 2018. 10. 13. 21:17

Akka Pulling Pattern


일반적인 시나리오

  1. Email 마켓팅 타겟 고객을 DB에서 읽는다. (Customer Target Read Actor) FAST
  2. Email 컨텐츠를 생성을 한다. (Email Content Create Actor) FAST
  3. 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로 전달한다.
  1. 사용자는 Coordinator Actor에서 Start 메시지를 보낸다.
  2. Coordinator Actor는 Worker Actor를 생성을 한다.
  3. Worker Actor는 Coordinator Actor에게 Work Request를 보낸다 (Customer Target Read Actor)
  4. Coordinator Actor는 Worker Actor에게 Work를 준다.
  5. Worker Actor는 Email Content Create Actor와 Email Send Actor를 이용하여 Email를 전송을 마친다.
  6. 끝난뒤 다시 Coordinator Actor에 Work Request를 보낸다.
  7. .... 작업이 끝날때 까지 반복.

  • 상대적으로 복잡한 구조지만 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