architecture/micro service

[inflearn] Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

방푸린 2024. 2. 18. 17:18
반응형

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/dashboard

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 강의 - 인프런

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해

www.inflearn.com

해당 강의를 들으면서 note taking이 필요한 부분 정리

강의는 springboot2.4를 기준으로 하고있지만, 나는 springboot2.7을 기준으로 하였기 때문에 설정에 변경이 필요한 부분이 많이 있었음..

 

관련 글

2024.01.12 - [서버 세팅 & tool] - [mvn] springboot 프로젝트 바로/여러 인스턴스로 실행하기

 

[mvn] springboot 프로젝트 바로/여러 인스턴스로 실행하기

환경: 윈도우, maven 3.8이 설치되어 있음 터미널로 실행하는 명령어 pom.xml 이 있는 폴더로 가서 아래와 같이 명령어를 주면 실행된다. mvn spring-boot:run # 추가적으로 포트를 수정해야한다면 mvn spring-

bangpurin.tistory.com

2024.01.15 - [개발/spring] - [h2] h2를 기본 데이터베이스로 사용하기

 

[h2] h2를 기본 데이터베이스로 사용하기

환경: springboot2.7, java 17, maven h2를 내장하는 테스트 프로젝트 생성 아래와 같이 설정했다고 가정 com.h2database h2 1.4.200 runtime # 1.3.176으로 낮추면 해결됨 ((최신 버전으로 해도 그러는지 확인 필요)) h

bangpurin.tistory.com

2024.01.27 - [개발/spring] - [security] jwt NoClassDefFoundError: javax/xml/bind/DatatypeConverter

 

[security] jwt NoClassDefFoundError: javax/xml/bind/DatatypeConverter

환경: java 17, springboot 2.7.6 아래 라이브러리를 사용하여 JWT토큰 파싱할 때 에러날 경우 소스: io.jsonwebtoken jjwt 0.9.1 subject = Jwts.parser().setSigningKey(environment.getProperty("token.secret")) .parseClaimsJws(jwt).getBody

bangpurin.tistory.com

2024.01.29 - [개발/spring-cloud] - [cloud] 파일을 동적으로 관리하는 config server

 

[cloud] 파일을 동적으로 관리하는 config server

환경: springboot2.7.6, java 17, springcloud 2021.0.8 application.properties/yml과 같은 설정파일을 수정하면 서버를 재시작해야 한다는 부담이 있다. spring cloud에서 제공하는 config server를 이용하면 설정 파일을

bangpurin.tistory.com

2024.01.29 - [개발/spring-cloud] - [cloud] spring cloud bus

 

[cloud] spring cloud bus

환경: springboot2.7.6, java 17, springcloud 2021.0.8 사용 이유: 분산 시스템의 노드(서비스들)를 경량 메시지 브로커(rabbit mq)와 연결하여 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(broadcast)한

bangpurin.tistory.com

2024.01.29 - [서버 세팅 & tool/rabbitmq] - [windows] rabbitmq cmd 설치

 

[windows] rabbitmq cmd 설치

환경: windows11 프로, 64비트 윈도우에서 rabbitmq 설치 시 erlang을 필수로 설치해야한다. 딱히 호환되는 버전 지정 없이, 최신버전들로 설치해도 문제없다. powershell 관리자 권한 실행 ctrl + r powershell

bangpurin.tistory.com

2024.01.29 - [개발/spring-cloud] - [cloud] property값 암호화하여 사용하기

 

[cloud] property값 암호화하여 사용하기

환경: springboot2.7.6, java 17, springcloud 2021.0.8 이전글: 2024.01.29 - [개발/spring] - [cloud] 파일을 동적으로 관리하는 config server 2024.01.29 - [개발/spring] - [cloud] spring cloud bus spring cloud config service에서 파일로

bangpurin.tistory.com

2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kafka 실행

 

[windows] kafka 실행

환경: 윈도우11, kafka2.13-3.6.1 카프카는 공홈에서 받아주고, 압축을 풀어준다. 카프카/주키퍼 실행 시 아래와 같은 에러 발생한다. 확인해보니 kafka-server-start.bat실행 시 같은 폴더 안에 있는 kafka-run

bangpurin.tistory.com

2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect; mariadb 설치

 

[windows] kakfa connect; mariadb 설치

환경: windows11, java17, springboot2.7.6 kakfa connect를 통해 데이터를 import/export 가능 코드 없이 configuration으로 데이터 이동 가능 Standalone mode, distribution mode 지원 restfult API 지원 stream, batch 형태로 데이터

bangpurin.tistory.com

2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect 연동

 

[windows] kakfa connect 연동

2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect; mariadb 설치 사용하게 된 배경: 기존의 서버가 h2 디비를 사용하여 1 인스턴스 - 1 디비를 사용하고 있었는데, 이렇게 되면 여러 인스턴스를 띄

bangpurin.tistory.com

2024.02.04 - [서버 세팅 & tool/kafka] - kakfa 작업시 띄울 것

2024.02.08 - [개발/kafka] - [spring-kafka] producer, consumer 기초

 

[spring-kafka] producer, consumer 기초

환경: springboot2.7.6, java11, h2 연결 producer 정보 보내는 쪽 1. pom.xml 추가 org.springframework.kafka spring-kafka 2. producer kafka 연결 설정 @EnableKafka @Configuration public class KafkaProducerConfig { @Bean public ProducerFactory pr

bangpurin.tistory.com

2024.02.08 - [개발/kafka] - [spring-kafka] 데이터 저장 시 sink connect 사용하여 단일 디비로

 

[spring-kafka] 데이터 저장 시 sink connect 사용하여 단일 디비로

이전 작업: 2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect 연동 2024.02.08 - [개발/kafka] - [spring-kafka] producer, consumer 기초 환경: springboot 2.7.6, spring-kafka, java11 목표: 인스턴스 별로 하나씩 있던 디

bangpurin.tistory.com

2024.02.08 - [개발/spring-cloud] - [resilience4j] circuit breaker

 

[resilience4j] circuit breaker

환경: springboot2.7.6, java11 circuit breaker 장애가 발생하는 서비스에 반복적인 호출이 되지 못하게 차단 특정 서비스가 정상적으로 동작하지 않을 경우 다른 기능으로 대체수행하여 장애를 회피함 ope

bangpurin.tistory.com

2024.02.08 - [개발/spring-cloud] - [spring-cloud] zipkin 분산 환경 모니터링

 

[spring-cloud] zipkin 분산 환경 모니터링

환경: springboot2.7.6, spring cloud2021.0.8, java17 zipkin 분산 환경의 데이터 수집, 추적 시스템(오픈소스, 트위터 시작, google drapper에서 발전) 분산 환경에서의 시스템 병목 현상 파악 collector, query service, da

bangpurin.tistory.com

2024.02.08 - [개발/spring-cloud] - [spring-cloud] micrometer, prometheus

 

[spring-cloud] micrometer, prometheus

환경: springboot2.7.6, java17 micrometer jvm 기반의 애플리캐이션 metrics 제공 springboot2 + premetheus 등 다양한 모니터링 시스템 지원 (구) turbine server -> hystrix client timer 짧은 지연 시간, 이벤트의 사용 빈도

bangpurin.tistory.com

2024.02.08 - [서버 세팅 & tool] - [windows] prometheus & grafana 설치

 

[windows] prometheus & grafana 설치

환경: windows11, springboot2.7.6, java17 prometheus(저장 서버) metrics를 수집하고 모니터링 및 알람에 사용되는 오픈소스 애플리케이션 시간순으로 데이터가 남음(time series database; TSDB) pull 방식의 구조와

bangpurin.tistory.com

2024.02.10 - [서버 세팅 & tool/docker] - [windows] docker; 컨테이너 가상화

 

[windows] docker; 컨테이너 가상화

환경: windows11 virtualization 물리적인 컴퓨터 리소스를 다른 시스템이나 애플리케이션에서 사용할 수 있도록 제공 플랫폼 가상화 리소스 가상화 하이퍼바이저(hypervisor) Virtual machine manager(VMM) 다수

bangpurin.tistory.com

2024.02.10 - [서버 세팅 & tool/docker] - [windows] docker 이미지 만들고 올리고 실행

 

[windows] docker 이미지 만들고 올리고 실행

환경: windows11, 아래 설치 진행 2024.02.10 - [서버 세팅 & tool/docker] - [windows] docker; 컨테이너 가상화 [windows] docker; 컨테이너 가상화 virtualization 물리적인 컴퓨터 리소스를 다른 시스템이나 애플리케이

bangpurin.tistory.com

2024.02.12 - [서버 세팅 & tool/docker] - [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅

 

[windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅

환경: windows11, springboot2.7.6, java17 2024.02.10 - [서버 세팅 & tool/docker] - [windows] docker 이미지 만들고 올리고 실행 [windows] docker 이미지 만들고 올리고 실행 환경: windows11, 아래 설치 진행 2024.02.10 - [서버

bangpurin.tistory.com

2024.02.18 - [서버 세팅 & tool/docker] - [windows] discovery server 세팅, docker 배포

 

[windows] discovery server 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 2024.02.12 - [서버 세팅 & tool/docker] - [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅 [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅 환경: windows11, springboot2

bangpurin.tistory.com

2024.02.18 - [서버 세팅 & tool/docker] - [windows] gateway server 세팅, docker 배포

 

[windows] gateway server 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 2024.02.12 - [서버 세팅 & tool/docker] - [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅 2024.02.18 - [서버 세팅 & tool/docker] - [windows] discovery server 세팅, docker 배포 gatew

bangpurin.tistory.com

2024.02.18 - [서버 세팅 & tool/docker] - [windows] mariadb 세팅, docker 배포

 

[windows] mariadb 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 2024.02.18 - [서버 세팅 & tool/docker] - [windows] gateway server 세팅, docker 배포 2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect; mariadb 설치 마리아 DB는 프로젝트가 아

bangpurin.tistory.com

2024.02.25 - [서버 세팅 & tool/docker] - [windows] kafka/zookeeper docker배포, docker compose

 

[windows] kafka/zookeeper docker배포, docker compose

환경: windows11, springboot2.7.6, java17 DOCKER COMPOSE? Simplified control: Docker Compose allows you to define and manage multi-container applications in a single YAML file. https://docs.docker.com/compose/intro/features-uses/#:~:text=Simplified%20cont

bangpurin.tistory.com

2024.02.25 - [서버 세팅 & tool/docker] - [windows] zipkin 서버 docker 배포

 

[windows] zipkin 서버 docker 배포

환경: windows11, springboot2.7.6, java17 공식 사이트에서 제공하는 도커 이미지를 띄워보기 https://zipkin.io/pages/quickstart.html Quickstart · OpenZipkin Quickstart In this section we’ll walk through building and starting an instan

bangpurin.tistory.com

2024.02.25 - [서버 세팅 & tool/docker] - [windows] prometheus+grafana docker 배포

 

[windows] prometheus+grafana docker 배포

환경: windows11, springboot2.7.6, java17 공식 사이트에서 제공하는 도커 이미지를 띄워보기 도커이미지 프로메테우스 https://hub.docker.com/u/prom Docker hub.docker.com 그라파나 https://grafana.com/docs/grafana/latest/setu

bangpurin.tistory.com

2024.02.29 - [서버 세팅 & tool/docker] - [windows] user-service server 세팅, docker 배포

 

[windows] user-service server 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 springboot 프로젝트인 user service 를 도커에 올려본다. 1. pom.xml 경로에 Dockerfile 생성 FROM openjdk:17-ea-slim-buster VOLUME /tmp COPY target/user-service-1.0.jar user-service.jar ENTRYPOINT ["

bangpurin.tistory.com

2024.02.29 - [서버 세팅 & tool/docker] - [windows] order-service server 세팅, docker 배포

 

[windows] order-service server 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 springboot 프로젝트인 order service 를 도커에 올려본다. 1. pom.xml 경로에 Dockerfile 생성 FROM openjdk:17-ea-slim-buster VOLUME /tmp COPY target/order-service-1.0.jar order-service.jar ENTRYPOINT

bangpurin.tistory.com

2024.02.29 - [서버 세팅 & tool/docker] - [windows] catalog-server 세팅, docker 배포

 

[windows] catalog-server 세팅, docker 배포

환경: windows11, springboot2.7.6, java17 springboot 프로젝트인 catalog service 를 도커에 올려본다. 1. pom.xml 경로에 Dockerfile 생성 FROM openjdk:17-ea-slim-buster VOLUME /tmp COPY target/catalog-service-1.0.jar catalog-service.jar ENTR

bangpurin.tistory.com

2024.02.29 - [개발/spring] - [application.yml] 프로파일 옵션으로 배포 설정 분리

 

[application.yml] 프로파일 옵션으로 배포 설정 분리

환경: springboot2.7.6 로컬에서 개발할 때, 그리고 운영 환경으로 배포할 때 내용물에 따라 설정파일을 분리할 수 있으며, 환경에 따라 다르게 가져가야 한다. -- 소스 실행 mvn spring-boot:run -Dspring-boot.

bangpurin.tistory.com

2024.02.29 - [architecture/micro service] - [arch] event sourcing, cqrs, saga

 

[arch] event sourcing, cqrs, saga

event sourcing event driven architecture monolithic 단일 데이터베이스 트랜잭션 처리를 완벽하게 -> ACID atomicity consistency isloation durable msa 각 서비스마다 독립적인 데이터베이스(polyglot) API를 통해 접근 atomicy

bangpurin.tistory.com

 

도커에 모두 구성하고 최종 테스트

1. 유저 생성

2. 주문

3. 주문 후 수량 감소 확인

4. 주문 후 유저 매핑 확인

728x90
반응형