Apache Storm

[storm] LMAX Disrupter 개념

'김용환' 2018. 1. 16. 13:04





스톰(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




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


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




이건 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