2017-09-20 14 views
0

나는 수퍼바이저 (http://supervisord.org/)가 제어하는 ​​Akka 클러스터 (버전 2.5.0)를 실행합니다. 내 문제는, 하나의 akka 노드를 supervisorctl stop my-service과 함께 중지하면 akka 노드가 중지되지만 akka 클러스터에서 자신을 등록 해제 할 충분한 시간이 없으며 다른 노드가 (즉) 싱글 톤 액터를 제어하지 못합니다.수퍼바이저에서 Akka Cluster 회원을 정상적으로 중지하는 방법

내 관리자의 설정은 다음과 같습니다

[program:my-service] 
command=java -jar -Dconfig.file=application-1.conf -Dfile.encoding=UTF-8 my_service.jar 
directory=/data/my-service 
autorestart=true 
autostart=true 
user=lm-service 
startsecs=3 
startretries=3 
stopsignal=KILL 
stopwaitsecs=10 
redirect_stderr=false 
stdout_logfile=/data/my-service/logs/stdout 
stdout_logfile_maxbytes=1MB 
stdout_logfile_backups=10 
stdout_capture_maxbytes=1MB 
stderr_logfile=/data/my-service/logs/stderr 
stderr_logfile_maxbytes=1MB 
stderr_logfile_backups=10 
stderr_capture_maxbytes=1MB 

내가 내 akka 응용 프로그램에서 일부 종료 후크를 추가해야합니까, 또는/및 내 구성에서 stopsignal 매개 변수를 변경해야합니까?

답변

2

정지 신호는 SIGTERM이어야합니다. SIGTERM은 akka의 조정 된 종료 시스템을 트리거하므로 클러스터 노드는이 경우 클러스터를 올바르게 종료해야합니다. 참조 : 아직도 http://doc.akka.io/docs/akka/current/scala/cluster-usage.html#leaving

http://doc.akka.io/docs/akka/current/scala/actors.html#coordinated-shutdown

  • +0

    감사합니다. –