DB 스키마 형상을 소스 코드가 아닌 DB 테이블로 관리하기 위한 툴로 flyway를 많이 사용한다.
flyway
flyway의 동작 방식과 관련해선 여기를 참고하면 이해하기 수월하다.
그리고 여기를 참고했을 때 DB 스키마에 변경사항이 생겼지만 스크립트 파일을 누락한 경우 애플리케이션이 실행되지 않는 불상사가 발생하여 주의해야 한다고 한다.
MSA 환경에서 고민해야되는 포인트는 도메인별로 분산된 DB를 가질때의 트랜잭션 관리다. 단일 DB에서 제공하는 트랜잭션을 활용할 수 없다보니 전체적인 데이터 일관성과 무결성을 보장하기 위한 고민이 필요하다. 이를 해결하기 위한 대표적인 방식인 2PC 프로토콜(2Phase Commit)과 Saga Pattern에 대해 알아보자. 2PC(2Phas...
사용한 커넥션을 커넥션풀로 다시 반환하지 못하게 되는 현상을 커넥션 누수라 한다. 아래 출처를 통해 다양한 포스팅들을 참고하면 이를 이해하기 쉬울 것이다. 특히! Hibernate 멀티테넌시를 사용한다면 더욱 주의가 필요할 것이다 :) 참고 및 출처 https://velog.io/@rnjsrntkd95/Hikari-CP-%EC%BB%A4%EB%...
HikariCP는 고성능의 JDBC 커넥션 풀 라이브러리이다. SpringBoot는 커넥션 풀 관리를 위해 HikariCP를 사용한다. 이와 관련된 설정 옵션으로 아래 출처 링크를 참고하면 좋다. 참고 및 출처 https://effectivesquid.tistory.com/entry/HikariCP-%EC%84%B8%ED%8C%85%EC%8B%...
[MSA] Kafka 도메인 이벤트 순서 보장하기
클린코드 내용 정리