가상 면접 사례로 배우는 대규모 시스템 설계 기초. 5주차 스터디

오도원공육사·2022년 10월 16일
0

독서

목록 보기
3/4

9장. 웹 크롤러 설계

10장. 알림 시스템 설계

  • SPOF(single point of failure)가 있으면 프로덕션 상태가 아니다.

  • 자동 수평 규모 확장을 위해서는 stateless 서버로 구성해야 한다.

  • 메시지 큐를 사용하면 시스템 컴포넌트 사이의 강한 결합을 끊는다.

  • 메시지 큐를 통해서 서드파티 서비스가 장애가 나도 장애가 아닌 지연으로 바꿀 수 있다.

  • 알림에서 가장 중요한 것 중 하나는 데이터 손실 방지이다.

  • 백업로그(ex. mysql bin log) -> 복구가능

  • 대표적인 알림시스템 -> 프로메테우스 alertmanager

  • exactly-once가 어려운 이유
    - https://www.joinc.co.kr/w/man/12/Kafka/exactlyonce
    - https://devs0n.tistory.com/74
    - 지연이 발생한 메시지와 실패로 판단해 재시도로 전송한 메시지가 있을 경우 중복 전송이 된다.

    • kafka exactly one

케이스스터디. Zuul: Netflix’s notification system

Netflix에서 제공하는 API Gateway 또는 API Service 기술이다. 마이크로서비스 아키텍쳐에서 여러 클라이언트 요청을 적절한 서비스로 프록시 및 라우팅하기 위한 서비스이다.

  • 분산시스템을 어떻게 스케일할 것인가도 포함

  • zuul: 여러개의 서비스를 가진 하나의 완전한 인프라 플랫폼
    zuul notification system
    -> 하나의 유저는 하나의 zuul 서버와 websocket 연결되며 이를 push registry에 저장 -> 트래픽이 크지않나? -> 커넥션만 유지하고 요청이 없기 때문에 트래픽은 별로 크지않을 수 있다?
    - 커넥션을 주기적으로 종료
    - 각 커넥션의 수명을 랜덤화

  • 메시지 처리 방식
    -fire & forget: 보내고 실패여부 체크 안함
    -subscription based: push registry 변화를 구독함.

참고

profile
잘 먹고 잘살기

0개의 댓글