MSA(Microservices Architecture) 4

대규모 AI 시스템 설계 프로젝트

프로젝트 목적이번 프로젝트는 물류 관리 및 배송 시스템을 개발하는 것이 목표이다.MSA기반의 시스템을 설계하고 구현하면서 다양한 기술과 방법론을 적용해 볼 예정이다.이번 프로젝트를 통해 MSA의 복잡성을 이해하고 실무에서 발생할 수 있는 문제를 간접적으로 경험하고 해결하는 것이 목표이다.프로젝트 개요이번 프로젝트는 B2B 물류 관리 및 배송 시스템 이다. B2B는 Business to Business의 약자로, 기업 간 거래를 의미한다.물류는 각 지역에 허브센터를 가지고 있으며 각 허브 센터는 여러 업체의 물건을 보관한다.업체의 상품은 허브에서 필요한 경우 바로 허브로 전달된다.해당 상품의 배송 요청이 들어오면 목적지 허브로 물품을 이동시켜 목적지에 배송한다.API 명세서테이블 명세서ERD 명세서인프라 ..

서비스 디스커버리

1. 서비스 디스커버리1. 서비스 디스커버리란?    ● 서비스 디스커버리는 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능    ● 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신     ● 주요 기능으로는 서비스 등록, 서비스 조회, 헬스 체크 등이 있다. 2-1 Eureka란?    ● 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리     ● 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장     ● 여러 인스턴스를 지원하여 고가용성을 유지할 수 있다.  2-1 Eureka 서버 설정    ● E..

Spring Cloud

1. Spring CloudSpring Cloud란?  ● Spring Cloud는 마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장이다.  ● 마이크로서비스 아키텍처를 쉽게 구현하고 운영할 수 있도록 도와준다.주요기능  ● 서비스 등록 및 디스커버리 : Eureka, Consul, Zookeeper  ● 로드밸런싱 : Ribbon, Spring Cloud LoadBalancer  ● 서킷 브레이커 : Hystrix, Resilience4j  ● API 게이트웨이 : Zuul, Spring Cloud Gateway  ● 구성 관리 : Spring Cloud Config  ● 분산 추적 : Spring Cloud Sleuth, Zipkin  ● 메시징 : Spring Cl..

MSA 개요

1. MSA란?Microservices Architecture  ● MSA는 하나의 애플리케이션을 여러 개의  독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는      소프트웨어 아키텍처 스타일이다.  ● 각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장될 수 있다.  ● 서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을 통해 이루어 진다.주요특징  ● 독립적인 배포 가능성 : 각 서비스는 독립적으로 배포할 수 있고 다른 서비스에 영향을 주지 않고 업데이트 할 수 있다.  ● 작은 팀 구성 : 각 서비스는 작은 팀이 독립적으로 개발하고 관리할 수 있다.  ● 기술 스택의 다양성 : 각 서비스는 적절한 기술 스택을 자유롭게 선택할 수 있다.1.2 모놀..