내용 목차
본 장에서는 RQS(Reliable Queue Server)를 관리할 수 있는 노드 매니저의 기능에 대해서 설명한다.
노드 매니저에서는 서버 이외의 프로세스를 관리하는 기능도 가지고 있다. 노드 매니저는 현재 RQS(Reliable Queue Server) 프로세스를 관리하는 기능을 가지고 있고, 추후 추가될 수 있다. RQS의 관리는 RQS 프로세스를 구동하거나 정지시키는 일을 의미한다. 또한 RQS 프로세스가 죽었는지 살았는지를 체크하여, 제대로 종료되지 않았다면 프로세스를 다시 구동시키는 것이다. 이런 기능은 서버나 노드의 설정과는 상관이 없으며, 별도로 설정된 정보를 통하여 동작하게 된다.
RQS 프로세스를 관리하는 노드 매니저는 같은 머신, 즉 같은 노드에 있는 노드 매니저가 관리한다. 다른 머신에 있는 RQS 프로세스나 노드 매니저가 실행되지 않고 있는 RQS 프로세스는 관리할 수 없다.
본 절에서는 노드 매니저가 RQS를 관리하는 방식에 대해서 설명한다.
RQS 프로세스들은 설정 파일에 저장된 file path와 옵션들을 통해서 구동이 된다. RQS는 서버와는 독립적인 프로세스들이기 때문에 구동과 정지도 서버와는 별개로 작동한다. 노드 매니저는 구동할 때에 RQS 관련 설정 정보를 읽고, 그에 따라 RQS 프로세스 모니터링을 시작한다. 이 때에 RQS 프로세스가 구동되어 있지 않는다면 구동을 한다.
jeusnm.xml 파일에서 RQS 정보를 읽어들여 저장한다.
RQS 정보를 이용하여 RQS 관리 객체를 생성하고, 모니터용 스레드를 생성한다.
모니터링 스레드는 읽어들인 정보를 이용하여 프로세스에 접근한 후에 모니터링을 시작한다.
모니터링을 하여 RQS 프로세스가 이상 종료 되거나, 혹은 응답하지 않는다면 RQS 프로세스를 재시작한다.
프로세스를 재기동할 경우에도 동일한 과정으로 진행된다.
RQS 프로세스의 모니터링에는 별도의 파일을 생성하지 않는다. 프로세스의 상태는 모니터링 스레드와 RQS 프로세스가 주고받는 메시지에 의존한다. 프로세스에 접근 할 때 사전에 정의된 메시지를 통하여 접근하게 되고, 프로세스의 정상동작 여부도 주기적으로 주고받는 메시지에 의존한다. 또한 RQS 프로세스가 정상 종료 되는 것을 판단 할 때에도 종료 메시지를 주고받는 것으로 판단 할 수 있다.
노드 매니저는 주기적으로 주고받는 메시지를 통하여 RQS 프로세스의 상태를 체크한다. 만약 이 상태 체크 메시지에 대한 응답이 오지 않는다면, 몇 번의 메시지를 더 보내 보고, 그래도 응답이 없다면 비정상 종료되었다고 판단하게 된다.
노드 매니저가 RQS 프로세스를 관리하기 위해서는 여러 가지 설정이 필요하다. RQS 프로세스는 다른 서버나 매니저와 별도로 실행되는 프로세스이기 때문에 이 설정을 통하여 구동되고 관리된다.
RQS 프로세스는 서버나 기타 시스템과는 별도로 돌아가는 시스템이기 때문에 RQS 구동은 전적으로 jeusnm.xml 파일의 설정에 의존한다. RQS 프로세스의 생성이나 삭제도 또한 jeusnm.xml 파일을 직접 수정하는 것으로 추가, 삭제할 수 있다.
jeusnm.xml 항목에서 rqsList 부분이 RQS 프로세스에 대한 정보를 다루고 있다. processList의 하위 항목으로 RQS라는 항목을 두어서 각각의 RQS 프로세스에 대한 설정 값을 저장함으로써, 노드 매니저가 프로세스를 관리하도록 할 수 있다.
RQS 프로세스들에 대한 정보를 담고 있다.
processList 항목 아래에는 하나의 프로세스 당 하나의 RQS 항목으로 묶여서 설정된다. 여러 개의 프로세스를 관리하고 싶으면 RQS 항목을 여러 개 추가하는 것으로 설정 가능하다.
RQS
다음의 항목 하나하나가 각 프로세스에 대한 설명을 담게 된다.