MSA(4)
-
주문 서비스 예제
간단하게 사용자가 주문정보를 전송하고 상품의 재고를 조회 하여서 재고가 부족하거나 재고 조회 서비스 호출 시 오류가 발생하면 주문취소 처리를 하고 재고가 있고 결제 처리 후 배송요청 오류가 발생하면 결제취소, 주문취소를 한다. 처음에 설명한 Saga 패턴의 핵심요소인 이전 로컬 트랜잭션에 의해 변경된 내용을 실행 취소하는 일련의 보상 트랜잭션을 실행한다. 라는 내용을 기억 할 수 있을 것입니다. 주문서비스 시퀀스 다이어그램 주문서비스 Orchestration 주문서비스 Orchestration Command and Event Flow 프로젝트설정 1. Axon Server 설치 https://developer.axoniq.io/download Download - AxonIQ Developer Portal..
2023.02.22 -
Axon Framework + Axon Server + Saga pattern
간단한 주문서비스를 Axon Framwork + Axon Server + Saga pattern을 이용하여서 구현하도록 해보고자 한다. 구현에 앞서 Axon Framwork + Axon Server + Saga pattern 에 대해 알아보고 구현을 해보자. Axon Framework + Axon Server Axon Server는 필수 사항은 아니다. Axon Server 대신에 Kafka도 많이 사용하는듯 하다. 예제도 Axon Framework + Kafka로 구현한 예제도 있는 것을 보았다. Axons Server vs Kafka의 차이는 다음과 같다. https://www.axoniq.io/blog/axon-and-kafka 사이트에서 정의한 내용은 아래와 같다. Kafka - Event Str..
2023.02.22 -
프로젝트 소개 및 설정
프로젝트 설정은 메이븐 모듈로 api-server, auth-server로 생성합니다. api-server는 쇼핑몰로 예를 들면 쇼핑몰 구현을 위한 API 연동을 위한 프로젝트라고 생가하면 됩니다. api-server에서는 Token의 발급, 재발급, 폐기 기능을 구현하지 않습니다. auth-server는 사용자 등록, 토큰의 발급, 재발급, 토큰 폐기를 관리합니다. 위와 같이 나눈 이유는 보안적인 측면과 MSA 서비스 구현시 기능의 중복을 피할 수 있기 때문입니다. 아래 그림은 프로젝트 구조입니다. 프로젝트 설정 완료 후 auth-server 실행 후 테이블 생성 및 데이터 확인을 합니다. 테이블은 Entity Class 기반으로 자동 생성되게 되어 있습니다. H2DB 접속 브라우저에서 http://l..
2021.06.27 -
스프링 마이크로서비스를 시작하며...
Intro.. 2달정도 동안 책과 검색을 통해 공부한 마이크로서비스에 대한 정리를 할려고 한다. 스프링 마이크로서비스의 장점은 각 서비스들이 분리 됨으로서 전체 서비스에 영향을 미치지 않고 일부 서비스에 영향을 주므로 사용자에게는 중단없는 서비스 제공이 가능 할 것이고 개발 조직에게는 API별로 관리가 명확해 질 것이다. 하지만 서비스를 어느정도로 분리하는냐에 따라 관리의 복잡도가 증가 할 수 있다는 생각이 든다. 마이크로서비스 아키텍처 전통적인 서비스 방식은 하나의 서버에 화면, 서버 모든 프로그램을 관리하는 방식이다. 지금도 많은 회사들이 이러한 방식으로 되어 있는 걸로 알고 있다. 하지만 마이크로서비스는 위에서도 언급하였지만 서비스를 분리함으로서 중단없는 서비스제공이 가능할 것 이다. 위의 그림을 ..
2019.10.09