Linux

Shell scripts - 클러스터링 작업 시 사용한 기술 기록

개발 일기92 2024. 4. 13. 18:01

redis -> postgresql로 적재하는 python프로그램 이중화

 

as-is

  • 실시간 데이터 적재 프로그램 1번 서버에서 py프로그램 crontab 1분마다 실행
  • 1서버 shutdown시 db적재불가.

to-be

  • 2번 서버의 python환경을 1서버와 동일하게 맞춤
  • 2번 서버에서 1번서버의 heartbeat상태를 체크.(30초마다 1번서버의 heartbeat가 로그를 남김)
  • 1번 서버의 heartbeat상태 체크 후 shutdown상태일 시 ping명령어의 receive신호와 python프로그램이 구동중인지(ssh명령어) 체크
  • 1번 서버 이슈 해소 시 2번 서버 python프로그램 자동 종료

 

※ 테스트

  • 1번, 2번 서버가 동시에 프로그램이 구동되는 순간이 있는가? 있다면 중복 적재에 대한 해결법은?
    • => 구동되는 순간이 있었다. 중복 적재는 DB 테이블의 key구조로 duplicate가 나기 때문에 중복 데이터는 없음.