- 사용자 고객센터 채팅 연결
- 상담원 고객센터 채팅 연결
- 상담 종료는 사용자, 상담원 모두 가능
- 상담 종료 시 상대방에게 [누구]가 상담을 종료했습니다. 메세지 출력
- 상담원은 상담 종료 시 자동으로 다른 사용자와 채팅 연결
- 상담원은 퇴근 버튼 누르면 상담 모두 종료
채팅 내용을 DB에 저장하는데, 메세지 하나 당 한번의 DB I/O가 발생하고, 이에 따라 N번의 채팅이 이루어질때 N번의 I/O가 발생한다. 이게 쌓이면 큰 I/O 낭비라고 생각했다.
따라서 batch에 각 상담별로 메세지를 저장하고 상담이 종료되는 시점에(WebSocket이 disconnect 될 때) DB에 한번에 저장한다.
- 테스트 사항
- 채팅 하나당 저장할때의 트래픽, 응답 시간 체크 ( 일단 100만건 해보고 그다음에 1000만건 도전)
- batch로 일괄 처리해서 얼마나 차이나나 비교