본문 바로가기
반응형

SpringCloud4

[Spring Cloud] Kafka를 활용한 이벤트 기반 아키텍처(EDA) 설계 패턴 마이크로서비스 아키텍처(MSA)에서 각 서비스는 독립적인 데이터베이스를 가진다. 이로 인해 발생하는 가장 큰 고민은 "어떻게 서비스 간 데이터 일관성을 유지할 것인가?"이다. 주문이 들어왔을 때 상품의 재고를 줄여야 하고, 사용자의 포인트를 적립해야 한다. 이를 단순히 HTTP API 호출로 해결하려 하면 서비스 간 결합도가 높아지고 시스템 전체의 가용성이 떨어진다. 오늘은 이 문제를 해결하는 만능 열쇠, Apache Kafka와 Kafka Connect에 대해 심층적으로 정리해 본다. 1. Kafka Client: 애플리케이션의 목소리와 귀Kafka Client는 Java 애플리케이션이 Kafka 브로커와 대화하기 위해 사용하는 필수 라이브러리다. 단순히 데이터를 보내고 받는 것을 넘어, 시스템 관리와.. 2026. 5. 4.
[Spring] MSA 서비스 간 통신의 진화: RestTemplate에서 FeignClient까지 단일 서비스(Monolith) 환경과 달리, MSA 환경에서는 서비스들이 각자의 성벽 안에서 독립적으로 존재한다. 따라서 '사용자 서비스'가 '주문 서비스'의 데이터를 필요로 할 때, 직접 메모리를 참조할 수 없고 반드시 네트워크라는 다리를 건너야 한다.오늘은 이 다리를 놓는 다양한 방법과 그 과정에서 발생하는 예외를 어떻게 스마트하게 처리할지 정리해 본다. 1. Communication Types: 서비스들이 대화하는 방식 (분류와 원리)이 프로젝트에서 마이크로서비스들은 역할과 상황에 따라 서로 다른 언어와 경로를 선택한다. 크게 동기(Synchronous)와 비동기(Asynchronous), 그리고 외부와 내부로 나눌 수 있다.외부 통신클라이언트 → API Gateway → 내부 서비스HTTP/RES.. 2026. 4. 29.
[Spring] 서비스 디스커버리의 시작: Spring Cloud Netflix Eureka 스프링 클라우드 개요와 Spring Cloud Netflix Eureka 정리스프링 클라우드는 MSA 운영에서 반복되는 문제를 공통 컴포넌트로 해결해주는 생태계이고, Eureka는 서비스 주소를 동적으로 등록/ 조회하는 서비스 디스커버리 서바다.핵심은 "도입"이 아니라 "운영기준(헬스체크, 만료, 종료 순서)"까지 함께 설계하는 데 있다. Spring Cloud로 MSA 흐름 잡기클라우드 네이티브 시대의 MSA: 구조, 운영, 그리고 Spring CloudMSA는 서비스를 잘게 나누는 유행어가 아니다.변화 속도를 높이면서도 장애 영향을 줄이기 위한 아키텍처 선택지다.다만 분산 복잡도myblog01150.tistory.com 1) 스프링 클라우드 간략 정리스프링 클라우드는 분산 환경에서 자주 부딪히는 문.. 2026. 4. 10.
Spring Cloud로 MSA 흐름 잡기 클라우드 네이티브 시대의 MSA: 구조, 운영, 그리고 Spring CloudMSA는 서비스를 잘게 나누는 유행어가 아니다.변화 속도를 높이면서도 장애 영향을 줄이기 위한 아키텍처 선택지다.다만 분산 복잡도가 커지기 때문에 설계 원칙과 운영 흐름을 함께 가져가야 한다.이 글은 개념을 짧게 짚고, 실제 적용에서 자주 마주치는 장면을 따라가며 정리한다. Monolith와 MSA의 차이는 코드 형태보다 배포와 복구 방식에서 크게 드러난다.1. 소프트웨어 아키텍처 소프트웨어 아키텍처는 기술 스택 나열이 아니라 변경 비용을 통제하는 설계다.핵심은 기능 구현 속도만이 아니라 확장성, 안정성, 변경 용이성 같은 품질 속성의 우선순위를 정하는 데 있다.아키텍처를 고를 때는 대개 이런 질문이 먼저 나온다.배포 충돌이 반.. 2026. 4. 10.
반응형