전체 글
-
[알림 서비스] 알림 서비스 구조 개선 - 신뢰성 있는 알림 서비스 제공STOVE DEVCAMP 3기/알림 서비스 2023. 3. 10. 03:04
💡 구조 개선 수행 내용에 대해 정리한 문서입니다. 📌 개선 대상 알림 생성 처리 구조 📌 기존 처리 구조의 문제점 및 보완할 점 파악 *기존 처리 구조 동작 방식 1) 알림 생성 API 호출 2) 알림 서비스 내부에서 알림 데이터 저장 & FCM에 알림 전송을 API 요청 처리 스레드에서 모두 수행함 *기존 처리 구조의 문제점 알림 전송 지연이 발생할 경우 알림 생성 API 지연응답으로 해당 API를 호출한 유저/트윗 서비스에 장애가 전파됨 알림 서비스가 재시작되거나 장애가 발생하여 서버가 다운되면, Firebase에 아직 전달되지 않은 알림 메시지는 유실됨 Firebase에 장애가 발생하거나 Firebase 전송 오류가 발생하면, 알림 메시지가 유실됨 📌 개선 구조 *개선 목적 알림 전송 작업으로 인..
-
[알림 서비스] 알림 서비스 데이터베이스 설계STOVE DEVCAMP 3기/알림 서비스 2023. 3. 10. 02:59
📌 선정 데이터베이스 및 이유 1) 선정 데이베이스 : MongoDB 2) 선정 이유 A. 알림 데이터가 문서 데이터베이스에 적합함 하나의 알림 객체에서 데이터를 부분적으로 사용하는 경우가 없다. 각 알림 데이터는 독립적으로, 중복되는 데이터가 없어 별도 정규화가 필요하지 않다. schema-less 구조로 유연한 스키마 대응이 가능하다. 알림 관련 스펙은 구조의 변경이 잦을 수 있음 B. TTL(time-to-live) 인덱스를 지원함 특정 일자 이후의 알림은 보이지 않게 한다면, 알림 데이터를 모두 쌓아둘 필요는 없음 C. DB 인프라 팀에서 지원함 참고 https://engineering.linecorp.com/ko/blog/LINE-integrated-notification-center-from-..
-
[MSA] 클루터 MSA 도입 과정STOVE DEVCAMP 3기/MSA 2023. 3. 10. 02:49
1) 도메인 분리 및 클라우드 환경 배포 클루터가 제공하는 핵심 기능을 중심으로 유저 / 알림 / 트윗으로 도메인을 분리함 도메인별 서버를 구성해 사내 인프라를 사용해 쿠버네티스 클러스터에 배포함 참고 https://helloworld.kurly.com/blog/ddd-msa-service-development/ 2) 이후 구조 수립 과정 A. 초기 구조 설명 API 게이트웨이(스프링 클라우드 게이트웨이), 서비스 레지스트리(유레카), Config 서버(스프링 클라우드 컨피그)와 중앙 저장소(github repository)로 구성하였음 마이크로서비스간 통신은 Feign Client를 사용한 HTTP 통신을 수행하도록 구성하였음 API 게이트웨이 도입 이유 > 기존 구조의 단점 서비스의 개수가 증가함에 ..
-
[MSA] 클루터 MSA 도입 회고STOVE DEVCAMP 3기/MSA 2023. 3. 10. 02:46
📌 MSA 도입 배경프로젝트 시작 전 백엔드 팀원들과 중점적으로 고려한 3가지 사항백엔드 팀원들 간의 효율적인 작업 수행구현 기능별 의존성을 줄여 자유로운 기술 선택서비스 규모가 커짐에 따라 기능 및 서버 확장이 쉬운 아키텍처 구성 이를 바탕으로 서비스별 독립된 구성을 제공하는 MSA 기반 아키텍처 도입하기로 함 📌 MSA 도입을 통한 기대효과작업 효율성각 서비스는 독립된 배포 단위를 가지므로, 병렬적인 작업과 테스트가 가능함기술 선택의 자율성제공하고자 하는 서비스(회원/트윗/알림)가 다양하고 개별 마이크로서비스로 구성되어 자유로운 기술스택 선정이 가능함서버 확장성소셜 네트워크 서비스인 '클루터'에서 가장 트래픽이 많을 것으로 예상되는 기능은 트윗 작성 및 피드 조회이므로, 해당 기능을 포함하고 있는..