프로그래밍 개념들

4. SEDA ( Staged Event-Driven Architecture)

쟈누이 2021. 5. 20. 15:02
반응형

** NIFI 개념을 설명할 때 처음 나옴 **

 

 

1. 영어 원본(위키피디아)


The staged event-driven architecture (SEDA) refers to an approach to software architecture that decomposes a complex, event-driven application into a set of stages connected by queues.[1] It avoids the high overhead associated with thread-based concurrency models (i.e. locking, unlocking, and polling for locks), and decouples event and thread scheduling from application logic. By performing admission control on each event queue, the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity.

SEDA employs dynamic control to automatically tune runtime parameters (such as the scheduling parameters of each stage) as well as to manage load (like performing adaptive load shedding). Decomposing services into a set of stages also enables modularity and code reuse, as well as the development of debugging tools for complex event-driven applications.

 

 

2. 간단한 요약


- 말 그대로, 단계별 이벤트 드리븐 아키텍쳐. 

- 큐로 연결된 스테이지에서 복잡한 이벤트 드리븐 어플리케이션을 작은 부분으로 나누는 것

- 스레드 베이스의 동시 운영 모델과 연관되 발생할 수 있는 높은 오버헤드를 피할 수 있음

- 각각의 이벤트 큐로 실행함으로써, 서비스는 좋은 컨디션으로 유지가 가능하며,

- 서비스의 능력에 비해 리소스들이 과도하게 커밋되는 것을 막아주는 역할을 함. 

- 막대한 서버접속 수요를 지원하며, 서비스 구축을 보다 간편하게 만들어줌.

- SEDA 에서의 최소 단위는 queue 

 

 

 

3. 참고 링크


https://en.wikipedia.org/wiki/Staged_event-driven_architecture

 

Staged event-driven architecture - Wikipedia

The staged event-driven architecture (SEDA) refers to an approach to software architecture that decomposes a complex, event-driven application into a set of stages connected by queues.[1] It avoids the high overhead associated with thread-based concurrency

en.wikipedia.org

https://www.mdw.la/papers/seda-sosp01.pdf

 

반응형