해당 시퀸스 다이어그램은 1대1 매칭 후 매칭된 두 유저에게 1대1 채팅방에 자동 생성된 후 Client A가 채팅 메세지를 보낸후 Client B에게 전달되는 과정을 간략하게 표현한 다이어그램입니다.
다이어그램 순서 설명
1. 매칭 요청(Client A → Main Server):
- Client A가 Main Server로 매칭을 요청합니다.
- Main Server는 매칭 서버로 사용자 정보를 전달합니다.
2. 매칭 성공 알림(Matching Server → Main Server):
- Matching Server는 매칭 성공 여부를 판단한 후 Main Server로 알림을 보냅니다.
- 이 과정에서 매칭 결과는 MySQL에 저장됩니다.
3. RabbitMQ를 통한 이벤트 전달:
- Matching Server가 매칭 성공 이벤트를 RabbitMQ로 전달합니다.
- RabbitMQ는 Main Server로 메시지를 중계하여 채팅방 생성 또는 메시지 전송을 준비합니다.
4. 채팅방 생성(Main Server):
- 매칭 성공 후 Main Server는 채팅방을 생성하고, Client A에게 연결 정보를 전달합니다.
5. 메시지 전송(Client A → WebSocket → Main Server):
- Client A는 WebSocket을 통해 메시지를 Main Server로 보냅니다.
- Main Server는 RabbitMQ를 통해 메시지를 전달하며, MongoDB에 메시지를 저장합니다.
6. 메시지 수신(Client B):
- RabbitMQ와 WebSocket을 통해 Client B에게 메시지가 전달됩니다.
모듈화된 아키택쳐를 통해 각 역할(매칭, 메세지 전송, 데이터 저장 등)이 독립적으로 분리되어 있어 유지보수와 확장성이 뛰어나며 Websocket-STOMP와 RabbitMQ를 활용하여 빠르고 안정적인 실시간 메세지 전송 구현을 하고, 데이터 안정성을 위해 메세지와 매칭 데이터를 각각 MongoDB와 MySQL에 저장해 데이터 무결성과 안정성을 확보하였습니다.
'우리 지금 만나' 카테고리의 다른 글
인프라 설계 설명-(12)(우리 지금 만나) (5) | 2024.11.30 |
---|---|
1대1 채팅 시퀸스 다이어그램 정리-(10)(우리 지금 만나) (2) | 2024.11.28 |
채팅 시스템 성능 개선-(9)(우리 지금 만나) (0) | 2024.11.17 |
1대1 채팅 서비스 구현 계획-(8)(우리 지금 만나) (0) | 2024.11.07 |
인프라 난항2-(7)(우리 지금 만나) (2) | 2024.11.03 |