1. 이벤트 흐름지난 게시글에서는 결제를 생성한 뒤, "payment-completed" 토픽에 이벤트를 발행하는 것 까지 했다.https://griotold.tistory.com/81 이번 게시글에서는 해당 토픽에서 이벤트를 수신하여 주문의 상태를 COMPLETE 로 바꾸고,"order-completed" 토픽에 이벤트를 발행하여 알림 서비스에서 알림 발송하는 것까지 해보자.https://github.com/Griotold/kafka-practice-sparta GitHub - Griotold/kafka-practice-spartaContribute to Griotold/kafka-practice-sparta development by creating an account on GitHub.github...
1. 이벤트 흐름https://github.com/Griotold/kafka-practice-sparta https://griotold.tistory.com/80 지난 게시글에서는 order MSA에서 주문 생성시 "order-created" 토픽에 메시지를 전달하는 것 까지했다. 이번 게시글에서는 payment MSA에서 메시지를 수신하고,결제를 생성한 뒤 "payment-completed" 토픽에 메시지를 전달하는 것을 구현해보자. 2. payment MSA의 application.ymlspring: application: name: payment-msa datasource: url: jdbc:h2:mem:testdb driverClassName: org.h2.Driver ..
1. 물류 관리 및 배송 시스템을 위한 MSA 기반 플랫폼 개발 MSA(Microservices Architecture) 기반의 시스템을 설계하고 구현한다.MSA 애플리케이션을 구성하면서 실무에서 발생할 수 있는 다양한 상황을 경험해본다.API 연동, 데이터 무결성 유지, 서비스 간 통신의 신뢰성을 확보하는 방법에 대해 집중적으로 고민한다.Gemini API를 사용하여 AI를 활용하는 경험을 쌓는다. 2. 인프라 설계서 auth servicedelivery service(배송, 배송 경로 기록, 배송 담당자)hub service(허브, 허브간 이동 정보)product service(업체, 상품)order service(주문)notification service(Gemini AI, Slack) 3. ERD..
1. 분산추적이란?분산 추적은 마이크로서비스 아키텍처와 같은 분산 시스템에서 요청의 전체 여정을 추적하고 모니터링하는 기술이다. 이 기술은 여러 서비스와 구성 요소를 거치는 요청의 경로를 시각화하고, 각 단계에서 소요된 시간과 발생한 오류를 식별한다. 분산 추적은 고유한 트레이스 ID를 사용하여 요청을 추적하며 각 작업 단위를 'Span'으로 표현한다. 이를 통해 개발자들은 성능 병목 현상을 파악하고, 오류의 근본 원인을 신속하게 찾아내며, 전체 시스템의 성능을 최적화할 수 있다. Zipkin과 같은 도구를 사용하면 이러한 분산 추적 데이터를 수집하고 시각화하여 효과적으로 분석할 수 있다. 2. 주요 개념2 - 1. Tracetrace는 하나의 요청이 시작부터 끝까지 각 서비스를 거치는 전체 흐름을 나타..
1. Spring Cloud Config란?Spring Cloud Config는 분산 시스템에서 설정 정보를 중앙화된 외부 저장소에서 관리할 수 있게 해주는 Spring Cloud의 핵심 컴포넌트이다. Config Server는 Git, File System, Vault 등의 저장소에서 설정 정보를 가져와 각 마이크로서비스에 제공하며, 설정 변경시 서비스 재시작 없이 동적으로 적용이 가능하다. Config Client는 Config Server로부터 설정 정보를 가져와 사용하며, 이를 통해 모든 마이크로서비스의 설정을 한 곳에서 효율적으로 관리할 수 있다. 여러 환경(개발, 테스트, 운영)과 여러 서비스에 걸친 설정 관리를 단순화하고 일관성을 유지하는 데 도움을 준다. 2. 주요 기능2 - 1. 중앙 집..
1. API Gateway란?API Gateway는 클라이언트와 백엔드 서비스 사이에서 중재자 역할을 하는 소프트웨어 계층이다. 모든 API 호출을 단일 진입점으로 받아 적절한 백엔드 서비스로 라우팅하고, 필요한 데이터를 집계하여 클라이언트에 통합된 방식으로 전달한다. 주요 기능으로는 요청 라우팅, 요청 필터링, 프로토콜 변환, 인증 및 권한 부여, 로깅, 모니터링, 속도 제한, 로드 밸런싱 등이 있다. API Gateway는 마이크로서비스 아키텍처에서 특히 중요하며, API 관리를 단순화하고 보안을 강화하는 데 도움을 준다. 또한, 클라이언트 인터페이스와 백엔드 구현을 분리하여 개발자가 개별 서비스 구축에 집중할 수 있게 한다. 2. Spring Cloud Gateway란?Spring Cloud Gat..
1. MSA 개요MSA(Microservice Architecture)는 하나의 큰 애플리케이션을 여러 개의 작은 독립적인 서비스로 나누어 개발하는 소프트웨어 아키텍쳐 방식이다. 각각의 서비스는 독립적으로 배포 가능하고, 자체 프로세스에서 실행되며, 경량하된 통신 메커니즘(주로 HTTP)를 사용하며, 비즈니스 기능 단위로 구성된다. 1 - 1. 주요 특징독립적인 배포 가능성: 각 서비스는 독립적으로 배포할 수 있다.작은 팀 구성: 각 서비스는 작은 팀이 독립적으로 개발하고 관리할 수 있다.기술 스택의 다양성: 각 서비스는 적절한 기술 스택을 자유롭게 선택할 수 있다. 2. 모놀리식 vs MSA2 - 1. 모놀리식 모놀리식은 하나의 큰 애플리케이션에 모든 기능이 통합되어 있다.단일 코드베이스와 데이터베이스..