채팅 애플리케이션 시스템 설계

다이어그램노드 13개엔지니어링 · 채팅 아키텍처한 번의 프롬프트로 생성
읽기 전용 미리보기

프롬프트

채팅 애플리케이션의 시스템 설계 다이어그램을 만들어 주세요

나만의 버전 만들기

프레임워크 소개

채팅 서비스의 컴포넌트 추적하기

이 아키텍처 예시에는 11개의 컴포넌트와 12개의 연결이 포함되어 있습니다. 모바일 또는 웹 클라이언트가 로드 밸런서에 연결되고, 로드 밸런서는 두 개의 WebSocket 서버와 REST API 서버로 연결됩니다. 두 WebSocket 서버는 모두 Redis Pub/Sub에 연결되며, REST 서버는 Kafka에 연결됩니다.

나머지 화살표는 Redis와 PostgreSQL, Kafka와 PostgreSQL·S3·Elasticsearch·푸시 알림을 연결합니다. 이러한 연결은 개략적으로 표현된 것입니다. 영속성, 인덱싱, 미디어 처리, 알림 전달을 담당하는 애플리케이션 워커는 그려져 있지 않습니다. 프레즌스, 메시지 순서, 재연결 동작도 정의되어 있지 않습니다.

이 다이어그램을 사용해 하나의 메시지가 이동하는 과정을 중심으로 설계 논의를 구조화해 보세요. 발신자가 성공을 확인하기 전에 어떤 일이 일어나는지, 오프라인 수신자가 무엇을 받는지, 재시도된 메시지가 어떻게 처리되는지 설명하는 데 필요한 서비스와 확인 응답을 추가하세요. 세부 사항을 선택하기 전에 규모와 전달 요구사항을 먼저 정하세요.

포함 내용

얻는 것

  • 이름이 표시된 11개의 아키텍처 컴포넌트와 12개의 연결
  • 로드 밸런서 뒤에 배치된 WebSocket 서버 2개와 REST API 서버 1개
  • 서로 별도의 메시징 컴포넌트로 표시된 Redis Pub/Sub와 Kafka
  • PostgreSQL, S3, Elasticsearch, 푸시 알림 컴포넌트
다이어그램

채팅 애플리케이션 시스템 설계

system-designchatwebsocketarchitecturetech

✦ Free preview · Sign in to use

자주 묻는 질문

자주 묻는 질문

이 다이어그램은 전체 메시지 전달 시퀀스를 보여주나요?

아니요. 이 다이어그램은 순서가 있는 전송, 확인 응답, 재시도 단계 없이 컴포넌트 간 연결만 보여줍니다. 오프라인 사용자에게 메시지를 보내는 경우처럼 특정 시나리오의 시퀀스 뷰를 요청해 보세요.

이 설계에서는 Redis가 데이터베이스에 직접 쓰기를 처리하나요?

이 예시에서는 Redis Pub/Sub에서 PostgreSQL로 향하는 화살표를 그렸지만, 그 뒤의 애플리케이션 로직은 정의하지 않았습니다. 구현하기 전에 영속성 서비스를 추가하고 역할을 명확히 정해야 합니다.

첨부 파일과 알림은 어디에 표시되어 있나요?

샘플에서는 S3 Media Store와 Push Notification이 모두 Kafka에서 연결됩니다. 업로드 시작, 미디어 접근, 알림 제공업체, 전달 실패 과정은 표시되어 있지 않습니다.

채팅 애플리케이션 시스템 설계

무료로 시작. 신용카드 불필요.

Free preview · Sign in to use