Spring Micro Services(25)
-
주문 서비스 예제
간단하게 사용자가 주문정보를 전송하고 상품의 재고를 조회 하여서 재고가 부족하거나 재고 조회 서비스 호출 시 오류가 발생하면 주문취소 처리를 하고 재고가 있고 결제 처리 후 배송요청 오류가 발생하면 결제취소, 주문취소를 한다. 처음에 설명한 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 -
인터페이스 JMeter 성능 테스트
MSA 서비스 개발시 보통 REST 방식을 가장 많이 쓸것이다. REST방식외에 WebFlux와 gRPC 방식으로 개발했을때 성능을 테스트 해보았다. WebFlux의 경우 R2DBC와 JDBC 방식으로 개발하여서 테스트를 진행하였다. 테스트 전의 예상의 WebFlux는 비동기 방식을 지원하더라도 일부 NoSQL이 아닌 RDB의 경우 Blocking 방식으로 처리 되어서 JDBC 연동은 느릴것으로 생각했었고 R2DBC는 비동기 방식을 지원하기 때문에 R2DBC가 빠를 것으로 예상했으나 그렇지는 않았다. 물론 단순희 조회 하나만 테스트 해서 그럴 수 있을 것이다. 향후 좀더 다양한 케이이스를 추가해봐야겠다. 테스트시나리오 1초에 동시에 100명의 사용자가 현재 위치에서 가까운 스타벅스 매장을 검색한다고 가정..
2023.02.10 -
gRPC VS REST 성능 테스트II
이번 성능 테스트의 목적은 실제로 DB에 값을 저장할 때 성능 차이가 있는지 확인할려는 목적이 있다. 성능테스트시 결재서버에서는 0.3초 정도 delay 를 주고 테스트를 수행한다. Delay를 주는 이유는 DB에 저장시 별다른 성능 차이가 나지 않았었다. 카드결제를 한다고 가정한다면 실제로 결재서버에서는 카드사와 승인정보를 교환할 것이다. 이러한점을 감안하여서 delay를 주었다. 성능테스트는 프로젝트설정에 보면 3가지 아키텍처에 대한 설명이 있을 것이다. 3가지 아키텍처에 대한 성능 테스트를 진행하였다. 성능테스트는 앞에서 수행한거와 마찬가지로 Apache Benchmark로 테스트 진행한다. 01. 아키텍처1 테스트 수행을 위해서 payment-rest-server, order-app 을 서버를 실..
2021.05.20 -
proto module
결제서버에서 결제승인 요청에 대한 input, output, service 메소드 정의 및 코드 생성을 위한 Maven Module 이다. 01.pom.xml spring-msa-with-grpc com.roopy 1.0-SNAPSHOT 4.0.0 proto 9.0.4 9.0.4 9.0.4 io.grpc grpc-protobuf 1.32.1 io.grpc grpc-stub 1.32.1 org.apache.tomcat annotations-api 6.0.53 provided kr.motd.maven os-maven-plugin 1.6.2 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.xolstice.maven.plugins protobuf-mave..
2021.05.08 -
gRPC VS REST 성능 테스트I
성능 테스트를 위해서 Apache Benchmark 프로그램을 통하여 동시요청과 동시접속자수를 설정하여서 부하테스트를 진행하였다. 테스트 프로그램 사용자로부터 임의의 숫자를 입력받은 후 받은 숫자 만큼 제곱을 구한 후 반환 하는 프로그램을 작성하여서 테스트 진행 예를 들어 사용자가 100 이라는 파라미터를 전달하면 1부터 100까지 루프를 돌면서 서버를 호출하여서 계산결과를 반환 받은 후에 Map 저장하여서 최종적으로 반환한다. 테스트 결과 하드웨어 사양 프로세서 Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz 2.40 GHz RAM 8.00GB REST 테스트 파라미터 총접속자수 : 300 동시접속자수 : 100 입력파라미터 : 500 ■ REST 테스트 결과 동시요청수를 30..
2021.04.15