WebtoB 프로세스 구조
WebtoB는 안정적이 서비스를 위해서 프로세스가 의도치 않게 종료될 경우 자동으로 재기동을 해줍니다. 기동 시 기본 동작은 Manager 프로세스와 Engine 프로세스를 함께 기동합니다.
Manager 프로세스
-
실제로 HTTP 요청을 처리하는 웹 서버 프로세스(Engine)를 관리해주는 역할을 합니다.
-
Engine 프로세스를 지켜 보고 있다가 비정상 종료되는 경우 재기동시켜줍니다. 이미 Engine 프로세스가 기동 되어 있는 경우 Manager는 기동되어 있는 Engine을 관리해줍니다.
-
Manager 프로세스는 1개만 기동 할 수 있습니다.
-
WebtoB 기동의 기본동작은 Manager와 Engine을 모두 기동하지만 Manager 프로세스만 기동할 수도 있습니다.
> webtob -a start-manager
-
Manager는 Rest API를 통해 Admin API를 제공합니다. Manager port는 node절에서 설정하며 사용가능한 API는 다음과 같습니다.
| API 이름 | 설명 |
|---|---|
환경 설정 내용을 조회합니다. |
|
WebtoB Manager를 종료합니다. |
/API config
현재 동작 중인 시스템의 환경 정보를 조회합니다. 이 과정에서는 환경 설정 파일에서 지정한 값뿐만 아니라 기본적으로 적용되는 값까지 확인할 수 있습니다.
-
사용법
{ "path": string }옵션 설명 path
환경 설정 파일의 JSON 경로를 지정합니다. 이때 경로는 항상 /로 시작해야 합니다.
경로를 생략하거나 /로 설정하면 현재 설정된 모든 환경 설정을 가져옵니다. -
예시
다음은 NODE 절 환경 설정을 "/config" Admin API로 확인한 예시입니다. NODE 절의 설정 항목에 대한 자세한 설명은 NODE 절 설정 항목을 참고합니다.
[Request] { "path": "/node" } [Response] { "result": { "cache_entry": 128, "cache_key": "HOST_URI", "cache_max_file_size": 8192, "connection_pool_size": 8192, "graceful_shutdown_timeout": 5, "hth_count": 1, "hth_schedule": "RR", "limit_request_body_size": 0, "limit_request_header_field_count": 100, "limit_request_header_field_size": 8190, "limit_request_line_size": 8190, "listen_backlog": 4096, "max_cache_memory_size": 100, "name": "webtob-server", "system_filters": [], "worker_threads": 1 } }
/API shutdownmanager
동작 중인 WebtoB Manager를 종료합니다.
-
사용법
{ "timeout": integer }옵션 설명 "timeout"
graceful shutdown 과정의 타임아웃을 초 단위로 지정합니다. 지정된 시간이 지나도 WebtoB Manager가 종료되지 않으면 강제 종료됩니다.
생략 시 /node/graceful_shutdown_timeout에 설정된 값이 적용됩니다. -
예시
다음은 30초 동안 graceful shutdown을 시도한 후 WebtoB가 종료되지 않으면 강제 종료하도록 "/shutdownmanager" Admin API를 호출하는 예시입니다.
[Request] { "timeout": 30 } [Response] { "result": {} }응답은 WebtoB에서 명령을 수신한 직후 반환됩니다. 단, 응답을 받은 후에도 WebtoB Manager프로세스가 동작 중일 수 있습니다. WebtoB Manager를 종료하더라도 Engine은 종료되지 않습니다.
Engine
-
실제로 HTTP 요청을 처리하는 프로세스입니다.
-
각 프로세스마다 인덱스를 가지고 있으며 인덱스는 0부터 시작합니다.
-
기동 시킬 프로세스의 갯수는 /node/process_count에서 설정할 수 있습니다.
|
이미 WebtoB가 기동 되어 있는 상태에서도 설정의 process_count만 변경하여서 WebtoB를 기동하는 방식으로 Engine 프로세스의 갯수 변경이 가능 합니다. |
-
WebtoB 기동의 기본동작은 Manager와 Engine을 모두 기동하지만 Engine 프로세스만 기동할 수도 있습니다.
> webtob -a start-engine
-
Engine도 Rest API를 통해 Admin API를 제공합니다. (Admin-API 문서 참조)
-
로그파일 이름에 %fullname% 혹은 %pid%를 설정할 경우 각 프로세스 별로 로그 파일이 따로 생성됩니다.
|
%fullname%이나 %pid%없이 %name%이 있으면 Manager와 Engine만 구분되어서 로그 파일이 생성됩니다. |