더북(TheBook)

트랜잭션 로그 마이너는 트랜잭션 로그 항목을 읽고, 삽입된 메시지에 대응되는 각 로그 항목을 메시지로 전환하여 메시지 브로커에 발행합니다. RDBMS의 OUTBOX 테이블에 출력된 메시지 또는 NoSQL DB에 레코드로 추가된 메시지를 이런 식으로 발행할 수 있습니다.

Note≡ 패턴: 트랜잭션 로그 테일링

트랜잭션 로그를 테일링하여 DB에 반영된 변경분을 발행한다.44

실제로 이 방식을 응용한 사례가 있습니다.

디비지움(Debezium)45: DB 변경분을 아파치 카프카 메시지 브로커에 발행하는 오픈 소스 프로젝트

링크드인 데이터버스(LinkedIn Databus)46: 오라클 트랜잭션 로그를 마이닝하여 변경분을 이벤트로 발행하는 오픈 소스 프로젝트. 링크드인에서는 데이터버스를 이용하여 다양한 파생 데이터 저장소를 레코드 체계와 동기화합니다.

DynamoDB(다이나모DB) 스트림즈(streams)47: DynamoDB 스트림즈는 최근 24시간 동안 DynamoDB 테이블 아이템에 적용된 변경분(생성, 수정, 삭제)을 시간 순으로 정렬한 데이터를 갖고 있습니다. 애플리케이션은 스트림에서 변경분을 읽어 이벤트로 발행할 수 있습니다.

이벤추에이트 트램(Eventuate Tram)48: 필자가 개발한 오픈 소스 트랜잭션 메시징 라이브러리입니다. MYSQL 빈로그(binlog) 프로토콜, Postgres(포스트그레스) WAL(Write-Ahead Logging), 폴링을 응용해서 OUTBOX 테이블의 변경분을 읽어 아파치 카프카로 발행합니다.

 

 


 

 

 

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.