Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
Transactional Outbox message relay 개선하기 섬네일

Transactional Outbox message relay 개선하기

RIDI faviconRIDI·Backend·
RedisTypeScriptMySQLKafkaTransactional Outbox
2024년 11월 06일5

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

RIDI가 Transactional Outbox 패턴의 message-relay를 개선해 락 대기와 불필요한 조인을 제거하고, MySQL 8.0 NOWAIT를 도입해 락 경합을 최소화했습니다. 또한 Redis 의 pessimistic lock을 제거하고 lock 관리를 message 테이블 중심으로 재설계했습니다.

구현 방법

  • message 테이블 단일화 및 left join 제거
  • SELECT FOR UPDATE에 NOWAIT 적용으로 락 대기 방지
  • Redis 락 제거 및 트랜잭션 기반 락 관리로 코드 간소화

주요 결과

  • 일관된 쿼리 성능 유지 및 안정성 증가
  • 코드 간소화와 운영 편의성 향상
  • deadlock 위험 감소와 시스템 신뢰성 향상

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
Transactional Outbox 패턴으로 메시지 발행 보장하기 섬네일
86%

Transactional Outbox 패턴으로 메시지 발행 보장하기

RIDI faviconRIDI·2024년 01월 17일
Redis Lettuce로 구현하는 안전한 분산 락 — 실시간 정합성 보장 섬네일
67%

Redis Lettuce로 구현하는 안전한 분산 락 — 실시간 정합성 보장

토니모리 favicon토니모리·2025년 01월 20일
리디에서 Kafka를 사용하는 법 섬네일
67%

리디에서 Kafka를 사용하는 법

RIDI faviconRIDI·2023년 01월 17일