미니톡포럼

미니톡을 이용하는데 있어 의견이나 궁금한점이 있다면 미니톡포럼을 이용하여 보세요.

문의게시판

문의사항이 있다면 누구나 자유롭게 질문하고 답변할 수 있습니다.

Q서버호스팅사용시, 채팅 히스토리 테이블에 반영에 딜레이가 있나요?

서버 호스팅을 사용하고 있습니다

https://www.minitalk.io/ko/forum/help/view/679  에서 문의에 대해 

외부에서 Mysql 접근이 가능하다고 답변을 주셔서


해당 채널의  마지막 대화내역 부분이랑

내 채팅목록의  정렬 순서를 마지막 대화내역 을 이용해 정리하게 구현을 했는데


채널 테이블은 채널 추가시 (DB 에 insert)  바로바로 반영이 되는 ( SELECt 로 바로 나오네요 )

내 최근대화내역  (history 테이블)  쪽은  대화내역이 실시간으로 바로 반영이 안 되는군요

대략 10초 정도 딜레이가 나오네요


테스트해보니  SELECT 문 쪽이 늦는게 아니라

채팅을 해도,  DB 테이블에 바로 반영이 안 되더군요


실제 채팅내역을 기록하는 DB 테이블이 따로 있고

그걸 10초 정도 간격으로 서버호스팅의   history 테이블에  복사를 해주는 개념인가요?


실시간으로 반영이 안 되서 확인차 여쭤봅니다.

혹시 대화내역이  서버호스팅에서 조회가능한 DB 쪽에 실시간 반영은 불가능한가요?


PLUG
LV.1

A 답변

안녕하세요.

MySQL 의 경우 미니톡에서 사용하고 있는 NoSQL인 몽고DB보다 데이터 IO속도가 느리고 이에 따라 부하가 발생할 수 있어 채팅메시지등은 1차적으로 몽고DB에서 저장/처리되고, 이를 일정시간 모아두었다가 모아둔 메시지를 한번에 MySQL로 옮기고 있습니다.

실시간으로 MySQL에 저장할 경우 유저의 채팅메시지 전달이 지연되거나 MySQL의 최대처리 가능 프로세스 및 접속자 수의 영향으로 쓸데없는 부하가 발생할 수 있어 완전한 실시간 처리는 힘들것 같습니다.


꼭 실시간 대화기록이 필요하다면 그 앞단에 있는 몽고디비 데이터를 조회할 수 있는 API를 제공 해드릴 수는 있습니다.

해당 몽고디비에는 실시간으로 저장된 채팅메시지가 약 24시간동안 보관되어 있습니다.

알쯔
LV.17