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
- 지연이 발생한 메시지와 실패로 판단해 재시도로 전송한 메시지가 있을 경우 중복 전송이 된다.
Netflix에서 제공하는 API Gateway 또는 API Service 기술이다. 마이크로서비스 아키텍쳐에서 여러 클라이언트 요청을 적절한 서비스로 프록시 및 라우팅하기 위한 서비스이다.
분산시스템을 어떻게 스케일할 것인가도 포함
zuul: 여러개의 서비스를 가진 하나의 완전한 인프라 플랫폼
-> 하나의 유저는 하나의 zuul 서버와 websocket 연결되며 이를 push registry에 저장 -> 트래픽이 크지않나? -> 커넥션만 유지하고 요청이 없기 때문에 트래픽은 별로 크지않을 수 있다?
- 커넥션을 주기적으로 종료
- 각 커넥션의 수명을 랜덤화
메시지 처리 방식
-fire & forget: 보내고 실패여부 체크 안함
-subscription based: push registry 변화를 구독함.
참고