Apache Storm 워크플로
작동하는 Storm 클러스터에는 Nimbus와 한 명 이상의 감독자가 있어야 합니다. 또 다른 중요한 노드는 Nimbus와 감독자 간의 조정에 사용되는 Apache ZooKeeper입니다.
이제 Apache Storm의 워크플로를 자세히 살펴보겠습니다. −
처음에 nimbus는 "Storm 토폴로지"가 제출될 때까지 기다립니다.
토폴로지가 제출되면 토폴로지를 처리하고 실행할 모든 작업과 작업이 실행될 순서를 수집합니다.
그런 다음 nimbus는 사용 가능한 모든 감독자에게 작업을 균등하게 분배합니다.
특정 간격으로 모든 감독자는 하트비트를 보내 아직 실행 중임을 알립니다.
감독자가 종료되고 하트비트에 하트비트를 보내지 않으면 Nimbus는 작업을 다른 감독자에게 할당합니다.
후광 자체가 종료되면 감독자는 할당된 작업을 문제 없이 처리하게 됩니다.
모든 작업이 완료되면 감독자는 새로운 작업이 들어올 때까지 기다립니다.
동시에 종료된 nimbus는 서비스 모니터링 도구에 의해 자동으로 다시 시작됩니다.
다시 시작된 네트워크는 중단된 부분부터 계속됩니다. 마찬가지로 감독자를 종료하면 자동으로 다시 시작할 수도 있습니다. 네트워크 관리자와 감독자는 모두 자동으로 다시 시작될 수 있고 둘 다 이전과 같이 계속되므로 Storm은 모든 작업이 최소한 한 번 처리되도록 보장합니다.
모든 토폴로지가 처리되면 네트워크 관리자는 새 토폴로지가 도착할 때까지 기다리며 마찬가지로 관리자도 새 작업을 기다립니다.
기본적으로 Storm 클러스터에는 두 가지 모드가 있습니다.
로컬 모드 - 이 모드는 모든 토폴로지 구성 요소가 함께 작동하는 것을 확인하는 가장 쉬운 방법이므로 개발, 테스트 및 디버깅에 사용됩니다. 이 모드에서는 매개변수를 조정하여 다양한 Storm 구성 환경에서 토폴로지가 어떻게 작동하는지 확인할 수 있습니다. 로컬 모드에서 Storm 토폴로지는 로컬 시스템의 단일 JVM에서 실행됩니다.
Production Mode - 이 모드에서는 일반적으로 다른 시스템에서 실행되는 많은 프로세스로 구성된 작동 중인 Storm 클러스터에 토폴로지를 제출합니다. Storm의 워크플로에서 설명한 대로 작업자 클러스터는 종료될 때까지 무기한 실행됩니다.