320x100
쿠키런 로그
__ 매일 200 ~ 400 GB의 JSON 텍스트 형식
__ 비정형 스키마
로그 수집
__ Apache Kafka 사용
__ 분산 메세징 시스템: Publish / Subscribe
__ 일별 토픽, 4일치 저장
Kafka의 장점
__ 메시지를 복제해 저장
____ 노드 장애에 강함
____ 서버 업데이트 및 재부팅이 상시 가능
__ 단순한 저장소 구조로 오류가 잘 안남
__ 높은 읽기 / 쓰기 대역폭
Kafka 사용시 주의점
__ 메시지 중복은 피할 수 없다 (기록 성공 응답을 못받으면 중복 발생)
Logstash -> Kafka
__ 컴포넌트를 멈추면 로그가 유실 발생
__ Logstash는 Push 방식, Kafka는 Pull 방식
로그 백업 - Amazon S3
__ 무햔 용량
__ 고가용성
__ 저렴한 유지비
블럭 압축
__ Snappy Framed Format 사용
__ 4MB 원본 블럭 단위로 압축 -> 1MB
__ 압축 블럭을 이어붙이면 하나의 거대한 압축 파일
실시간 로그 조회
LevelDB
__ Key-Value 스토리지
__ 구글 제품
__ 범위 쿼리 지원
__ 초당 10만건 쓰기 가능
실시간 로그 서버
__ LevelDB엔 네트워크 API가 없음
__ REST API 서버를 Go로 작성
__ 일별 LevelDB
로그 브로커
__ 과거 로그는 S3, 최근 로그는 실시간 로그 서버에서 가져옴
출처: http://ndcreplay.nexon.com/NDC2015/sessions/NDC2015_0067.html
320x100
'NDC > Server' 카테고리의 다른 글
[NDC 2016] 테라 서버의 Modern C++ 활용기 (0) | 2023.01.14 |
---|---|
[NDC 2016] UDP를 사용해서 게임 서버 만들기 (0) | 2023.01.10 |
[NDC 2015] 피파온라인3 서버 구조와 85만 동접 포스트 모템 (0) | 2023.01.05 |
[NDC 2014] WCF를 이용하여 쉽게 만드는 모바일 게임서버 (0) | 2022.10.21 |
[NDC 2014] 분산서버 구축의 ABC (0) | 2022.10.19 |