kafka

MSA 환경에서 분산 트랜잭션 방식으로 구현 시 서비스 간 이벤트 발행이 필수이다.각 서비스에서는 별도의 트랜잭션으로 로직을 처리하고 이벤트를 발행하게 되는데 이때 트랜잭션이 커밋 또는 롤백된 경우에만 이벤트가 발행되도록 보장해야 한다. 이 글에서는 Outbox 패턴과 Spring의 @TransactionalEventListener 방식을 고민한 끝에 @TransactionalEventListener를 사용하여 문제를 해결한 사례를 공유하고자 한다. Outbox 패턴 vs. @TransactionalEventListenerMSA 환경에서는 서비스 간 데이터 일관성을 유지하기 위해 분산 트랜잭션 처리가 필요하다. 이때 트랜잭션 커밋 또는 롤백 시에만 카프카 이벤트가 발행되도록 보장해야 한다.Outbox 패..
WebSocket, Stomp, Kafka, MongoDB, MySQL, Redis를 사용하여 채팅 기능을 구현하였다.이번에는 시간 타입 변경(String -> LocalDateTime)에 의한 성능 개선 경험 그리고 Kafka를 사용한 성능 개선 경험에 대해 작성해보려 한다. 성능 테스트 구성테스트에 앞서 WebSocket 테스트를 위해서는, JMeter에 WebSocket 플러그인을 설치해야 한다. Thread Group 구성웹소켓 연결 시작(WebSocket Open Connection)웹소켓 연결 요청(SEND CONNECT)채팅방 구독 요청(SEND SUBSCRIBE)메시지 전송(SEND CHAT)응답 대기(READ CHAT)웹소켓 연결 해제(DISCONNECT)※ 이때, 채팅방 구독 해제와 웹..
개발자가 될 사람
'kafka' 태그의 글 목록