1. 소개서킷 브레이커는 마이크로서비스 아키텍처(MSA)에서 서비스 장애로 인한 연쇄적인 실패를 방지하기 위한 패턴이다. 전기회로의 "회로 차단기(Circuit Breaker)" 개념에서 유래한 것으로, 특정 서비스가 장애가 발생했을 때 일시적으로 요청을 차단하여 전체 시스템이 무너지지 않도록 한다. 서킷 브레이커에서는 서비스의 상태를 아래의 3가지 상태로 구분한다. closed 정상적인 상태 open 장애가 발생해서 연결을 끊은 상태hided open 장애가 발생했는지 확인하는 상태 2. 사용 방법 Spring Boot에서는 Resilience4j 라이브러리를 사용하여 서킷 브레이커를 쉽게 구현할 수 있다. 1. 의존성 추가 build.gradleimplementation 'io.github.r..
단일 모듈에서의 Swagger 설정은 여기로 멀티 모듈(Spring Boot 기반)에서 Swagger를 설정하고 API 문서를 통합하는 방법을 정리해 봤다. 나는 모든 모듈에서 공통적으로 implement 하는 core 모듈을 사용해서 SwaggerConfig를 추상화하여 각 모듈에 Swagger 설정을 추가했다.그리고 각 모듈의 Swagger-ui 들을 각자의 IP로 들어가서 보면 불편하니까 Gateway 모듈에서 모아볼 수 있도록 설정해 주었다. 설정 과정 1. 의존성 추가Swagger를 추가할 각 모듈에는 아래 의존성을 추가하고implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.5' Swagger를 모아서 볼 Gateway모..
1. Kafka란?Kafka란 분산 메시징 시스템으로, 대량의 데이터를 빠르고 안정적으로 처리할 수 있는 이벤트 스트리밍 플랫폼이다.마이크로서비스 아키텍처에서 서비스 간의 비동기 통신을 위해 자주 사용된다. 특징발행/구독 메시징 시스템 메시지를 Producer(생산자) 가 전송하면, Consumer(소비자) 가 구독(Subscribe)하여 가져가는 구조.메시지를 토픽(Topic) 단위로 관리하여 여러 Consumer가 동시에 구독 가능.고성능 & 확장성 분산 처리 기반이라 대량의 데이터를 빠르게 처리 가능.여러 개의 브로커(Broker) 가 클러스터를 이루어 확장 가능. 내결함성 복제(Replication) 기능을 지원하여 데이터 손실 방지.파티션(Partition) 을 사용하여 장애 발생 시 다른 브로..
1. 멀티 모듈이 왜 필요할까?Spring Boot로 프로젝트를 개발하다 보면, 코드가 점점 커지면서 관리가 어려워지고 같은 코드를 여러 곳에서 중복해서 쓴다는 문제점이 있다. 이런 문제를 해결하기 위해 멀티 모듈 프로젝트를 사용하면 여러 서비스 모듈을 독립적으로 관리할 수 있다.2. 멀티 모듈 프로젝트란? Spring Boot에서 프로젝트를 개발할 때 단일 프로젝트 방식과 멀티 모듈 프로젝트 방식이 있다.각 방식의 차이를 비교하고, 멀티 모듈이 필요한 경우와 실제 사용 사례를 살펴보자. 멀티 모듈 vs 단일 모듈단일 모듈서로 다른 프로젝트에서 공통된 코드가 사용된다면, 코드를 복붙해서 사용해야한다.여러 프로젝트에서 사용하기 위해 IDE, 인스턴스를 N개 실행해야 한다.하나의 수정에도 전체 프로젝트를 빌..
1. DB Replication 1) Master-Slave 구조Master DB: 데이터 변경(INSERT, UPDATE, DELETE) 담당Slave DB: 읽기(SELECT) 요청 담당 2) Replication 구현 흐름Master-Slave 데이터소스 설정동적으로 DataSource 선택Repository에서 @Transactional 사용하여 자동 분배 2. 데이터베이스 설정1) Master DB 설정1. cnf 파일 수정server-id=1log-bin=mysql-binbinlog-do-db=mydatabase # 복제할 DB 지정 2. Master DB에서 Replication 계정 생성CREATE USER 'replica_user'@'%' IDENTIFIED BY 'replica_p..
저번에 설치해놓은 VMware을 이용해 가상환경에서 mariaDB를 세팅해보자.VMware를 설치 안했다면 클릭 Ubuntu 설치 및 세팅1. VMware 설치Linux는 윈도우같은 운영체제의 일종이다. 따라서 윈도우환경에서 Linux를 사용하고 싶다면 가상머신을 이용해야한다.가상머신은 기존 컴퓨터의 자원을 조금씩 떼서 하나의 가상컴퓨cheezzapisse.tistory.com 1. 관리자 로그인 2. IP 설정 3. IP 설정 적용 4. 레포지토리 목록 갱신 apt update 04. mariadb 설치 apt install -y mariadb-server 05. mariadb 설정 vi /etc/mysql/mariadb.conf.d/50-server.cnf 27번 라인에 있는 설정을 다음처럼 변경 b..