이전글에서 채팅데이터를 담기 위한 DB로 Mongodb를 사용할 계획이라고 말했지만 , 데브옵스 팀원분께서 다른 의견을 주셨다. 1. 그냥 기존에 사용하는 MYSQL을 사용하는건? 2. NoSql을 사용한다면 관리포인트가 더 늘어나는데 Mongodb랑 DynamoDb중 어떤게 관리포인트 측면에서 좋을까? 3. Redis같은걸 써서 batch transcation을 사용하는건? 4. Kafka는 이전 데이터를 삭제하지 않기 때문에 Kafka를 Db처럼 사용할 수 있나? 결국 내가 채팅 데이터를 DB에 저장하는 이유는 이전에 했던 채팅내역을 그대로 들고오기 위함이다. 해당 내용을 기반으로 글을 작성해볼까 한다. 기존 MYSQL을 사용한다면... 우선 NOSQL이 기존의 RDB보다 더 빠른 읽기 쓰기 성능을 ..
해당 프로젝트에서 채팅 구현을 맡고 있었다. 이전까지는 단지 STOMP프로토콜을 사용해 직접 client에게 메세지르 바로 보내는 것을 구현하였다. 하지만 해당 과정은 synchronize하기 때문에 다량의 트래픽이 몰린다면 문제가 발생될 수 있었다. 이것을 해결하기 위해서 pub/sub 구조인 Message queue를 도입하고자한다. Message queue의 후보지는 2가지가 있다. 1. Kafka 2. Redis 이 두개의 차이점을 비교하고 현재 나의 프로젝트에 맞는 Message Queue를 선택하고자 한다. 또한 DB도 문제이다. 현재는 MYSQL에다 채팅 데이터를 저장하고 있다. 항상 고민됐던게 MYSQL에 트랜잭션도 자주 발생하고 성능도 고려가 된다... 만약 채팅을 위한 DB를 구성하고 ..