스톰(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://martinfowler.com/articles/images/lmax/input-activity.png)
소스 리파지토리이다.
https://github.com/LMAX-Exchange/disruptor
'Apache Storm' 카테고리의 다른 글
[storm] 스톰 내부 구조와 back pressure 튜닝 (0) | 2018.01.16 |
---|