본문 바로가기

251022 (수) MSA - Config 서버와 이벤트 드리븐 [개념]

@6uiw2025. 10. 22. 22:24

 

학습 목표

Config Server의 개념과 동작 원리에 대해 이해할 수 있다.
이벤트 드리븐 아키텍처의 개념과 동작 원리에 대해 이해할 수있다. 



📌 Spring Cloud Config 

  • Spring Cloud Config는 분산 시스템 환경에서 중앙 집중식 구성 관리를 제공하는 프레임워크
  • 애플리케이션의 설정을 중앙에서 관리하고, 변경 사항을 실시간으로 반영

 

주요 기능

  • 중앙 집중식 구성 관리: 모든 마이크로서비스의 설정을 중앙에서 관리
  • 환경별 구성: 개발, 테스트, 운영 등 환경별로 구성을 분리하여 관리할 수 있다.
  • 실시간 구성 변경: 설정 변경 시 애플리케이션을 재시작하지 않고도 실시간으로 반영할 수 있다.

 

구현 절차 

1. config 서버

    - build.gradle - Config Server 의존성 추가 ( + 필요시 Eureka Discovery Client, Actuator 등 의존성 추가) 

    - yml 파일 작성

    - Application class에 @EnableConfigServer 어노테이션 추가 

    - 클라이언트들의 yml 파일 작성

 

2. client

    - build.gradle - 'spring-cloud-starter-config' 의존청 추가 ( + .. )

    - yml 파일 작성 (config server연결 설정)  

 

 

 

 

 


📌 Event Driven

이벤트 드리븐 아키텍처란?

  • 이벤트 드리븐 아키텍처(EDA) 는 시스템에서 발생하는 이벤트(상태 변화나 행동) 를 중심으로 구성된 아키텍처 스타일
  • 각 서비스는 이벤트를 비동기적으로 송신/수신하며, 이를 통해 서비스 간 결합도를 낮추고 독립적으로 동작할 수 있다.

 

주요 개념

이벤트 (Event) 시스템 내부나 외부에서 발생한 상태 변화 또는 행동을 의미하는 메시지
이벤트 소스 (Event Source) 이벤트를 생성하고 발행(Publish) 하는 주체
이벤트 핸들러 (Event Handler) 이벤트를 구독(Subscribe) 하여 해당 이벤트에 맞는 작업을 수행하는 주체
이벤트 버스 (Event Bus) 이벤트를 중개하고 전달하는 통신 채널 (Kafka, RabbitMQ 등 메시지 브로커 역할)

 

이벤트 드리븐 아키텍처의 장점

느슨한 결합 (Loose Coupling) 서비스 간 직접적인 의존이 없고, 이벤트로만 연결되므로 각 서비스가 독립적으로 개발·배포 가능
확장성 (Scalability) 이벤트 생산자(Producer)와 소비자(Consumer)를 독립적으로 확장 가능 → 대규모 트래픽 대응에 유리
비동기 처리 (Asynchronous) 요청/응답을 기다리지 않고 이벤트 단위로 처리하므로 시스템의 응답성과 처리 효율이 향상됨

 

이벤트 드리븐 아키텍처의 단점

복잡성 증가 이벤트 흐름이 많아질수록 시스템의 전체 동작을 추적하기 어려움 → 체계적인 설계와 모니터링 필요
장애 전파 가능성 이벤트 처리 실패 시 다른 서비스에도 영향이 퍼질 수 있음 → 재처리(Replay), 보상 트랜잭션 설계 필요

 

 

6uiw
@6uiw :: LOG.INFO("MING's DEVLOG")

개발을 하면서 공부한 기록을 남깁니다

목차