ParkIlHoon / data-collector

[개인 프로젝트] 찍먹용 데이터 수집 프로젝트
5 stars 0 forks source link

[06_elk-stack] 위험한 패턴을 사용하신것 같습니다! ㅎㅎ #10

Closed qkfl2 closed 2 years ago

qkfl2 commented 2 years ago

https://github.com/ParkIlHoon/data-collector/blob/ae8dfa950433f9423cfd14f545d46c202236a3f1/logstash/pipeline/data-collect.conf#L1

temp/a.txt 파일에 계속 쓰다가 한시간마다 mv temp/a.txt persist/a.txt touch temp/a.txt

이런 패턴인데 mv와 createfile 이 Atomic 하지 않기 때문에 상당히 위험한 패턴입니다.

차라리 a-2021-01-01_00.txt 에 쓰다가 1시간마다 create a-2021-01-01_01.txt filePath = a-2021-01-01_01.txt 이렇게 하는게 안전한 패턴일것 같아요

위 방식으로도 충분히 동시성 고려해서 안전하게 만들 수 있지만 동시성을 고려해야 하기 때문에

  1. 패턴 자체가 위험.
  2. 성능 저하
  3. 코드 복잡도 상승 이 있어서 락등으로 동시성을 제어하기보단 안전한 패턴을 활용하는게 좋을것 같아요!