스톰(Apache Storm)은 LMAX Disrupter를 통해 publish/consume 구조를 갖고 있다.


스칼라는 Akka(Actor) 모델을 기반으로 병렬 처리 패러다임을 갖고 있다면,,


LMAX Disrupter는 큐(RingBuffer) 모델을 기반으로 병렬 처리 패러다임을 갖고 있다. 즉 concurrey와 lock 이슈를 최대한 쉽게 해결하려하는 플랫폼이다. 

마치 AWT의 EventDispatchQueue 또는 Single Thread 기반의 Queue 병렬 처리 패러다임과 비슷해 보인다.

또한 input/output 모델에 대한 복제, 전달, 백업 이런 형태들도 포함한다. 


큐잉과 index가 있으며 장애가 발생하면 한번에 배치처리도 할 수 있으리라..






개념을 잡기 위한 자료는 다음과 같다.



https://www.slideshare.net/trishagee/workshop-introduction-to-the-disruptor


Workshop: Introduction to the Disruptor from Trisha Gee



이전 그림보다는 조금더 상세한 그림


https://www.slideshare.net/trishagee/a-users-guide-to-the-disruptor


Concurrent Programming Using the Disruptor from Trisha Gee



이건 QCon 동영상이다.


https://www.infoq.com/presentations/LMAX




관련 홈피이다.


http://lmax-exchange.github.io/disruptor/





마틴파울러가 정리한 LMAX 아키텍처이다.

https://martinfowler.com/articles/lmax.html




소스 리파지토리이다.


https://github.com/LMAX-Exchange/disruptor


'Apache Storm' 카테고리의 다른 글

[storm] 스톰 내부 구조와 back pressure 튜닝  (0) 2018.01.16
[storm] LMAX Disrupter 개념  (0) 2018.01.16
Posted by 김용환 '김용환'