Closed cotchan closed 2 years ago
chat-server
Spring STOMP
Kafka
기존 채팅 서버 구조
Producer
Consumer
모두 정의
DB
SimpleBroker
외부 메시지 브로커를 사용하는 이유
spring-amqp-stomp
rabbitmq
kafka
작업 내용
chat-server
에서 kafka 라이브러리 사용 제거PR
100
목차
작업 목적
Spring STOMP
+Kafka
사용(외부 브로커 사용 목적)이라고 돌아다니는 샘플 코드를 보면기존 채팅 서버 구조
처럼 되어있음Producer
,Consumer
를모두 정의
해서 사용하는 방식DB
에 채팅 정보를 저장하기 때문에 '단순 저장 목적'으로 TOPIC을 사용할 필요가 없음SimpleBroker
를 사용해서 WebSocket에 연결된 클라이언트에게 메시지를 전달한다.외부 메시지 브로커를 사용하는 이유
는SimpleBroker
사용시 클라이언트 커넥션 정보를 서버 메모리에 저장하기 때문에 이 부분의 부하를 외부 브로커 서버로 옮기기 위해 외부 메시지 브로커를 사용한다.spring-amqp-stomp
플러그인을 제공하는rabbitmq
을 사용해야 함rabbitmq
를 적용하지 않았을 때, 기존 채팅 서버 구조에서 kafka는 불필요하다 판단하여 제거함작업 결과
기존 채팅 서버 구조
kafka
+SimpleBroker
사용바뀐 채팅 서버 구조
SimpleBroker
만 사용SimpleBroker
사용해서 클라이언트에게 메시지 전달