만들기/EagleEye

[EagleEye][서비스구현] Spring으로 간단 서비스 구현

pythaac 2022. 5. 12. 00:26

https://pythaac.tistory.com/424

 

[EagleEye][환경세팅] 채팅 서버 설치 (Vartalap) - 2차 시도

https://pythaac.tistory.com/423 [EagleEye][환경세팅] 채팅 서버 설치 (Vartalap) - 1차 시도 https://github.com/pythaac/chat-server GitHub - pythaac/chat-server: A chat server based on the microservice..

pythaac.tistory.com

  • Vartalap 포기
    • 이미 구현된 채팅서버로 모니터링을 시도하려 했었음
    • 어찌저찌 Docker에 올려보는 테스트까지는 성공
      - 사전지식이 부족해서 많이 해맸음
    • 1. 모니터링 대상이 모호
      - 무엇을 모니터링 해야하지?를 고민하니 잘 모르겠다
    • 2. 서브태스크가 커짐
      - 주요 목적은 마이크로서비스 환경 + 모니터링인데, 이 코드를 숙지하는데에 로드가 커질 것으로 생각된다
    • 3. 모니터링 대상을 숙지해야함
      사전 지식이 부족해서 해맸던만큼, 간단하더라도 직접 구현하여 데이터 발생 환경에 익숙해지는 것이 더 낫다

 

https://pythaac.tistory.com/432

 

[클라우드] 마이크로서비스 아키텍처

정의 마이크로서비스 - 하나의 큰 애플리케이션을 여러 개의 서로 다른 역할을 수행하는 애플리케이션으로 분리했을 때 각 애플리케이션 마이크로서비스 아키텍처 - 마이크로서비스들로 쪼개

pythaac.tistory.com

  • 구현할 서비스
    • 간단한 주문 서비스(버거킹에서 주문할 때 생각함)
    • 이유
      • 위의 글에서 정리했던 블로그 글이 있다
      • 이해하기쉽고 물흐르듯 글의 흐름이 정말 좋았다
        - 마이크로서비스 아키텍처 -> 문제점(트랜잭션) -> 해결방법(이벤트-드리븐)
      • 위 글에서 들어주신 예시와 비슷하게 구현해보는 것이 목적
  • 구성
    • 지점 서비스(branch-service)
      • 지점
        - 이름
      • 기능
        - 지점 CRUD
    • 상품 서비스(product-service)
      • 상품
        - 이름
        - 가격
      • 기능
        - 상품 CRUD
    • 주문 서비스(order-service)
      • 주문
        - 상품
        - 수량
        - 상태
        - 카드번호
      • 결제정보
        - 카드번호
        - 금액
      • 기능
        - 주문
    • 결제 서비스(payment-service)
      • 결제정보
        - 카드번호
        - 금액
      • 기능
        - 결제확인

  • 일단 이렇게 해보자
    • 처음부터 욕심나서 이벤트 주도 아키텍처로 만들고
    • CQRS 해보고 싶어서 그려보다가
    • 그러면 Data Store는 Hadoop에 Hive같은 걸로 해야하지 않나?
    • 이래서 언제 만들지...하다가 그냥 간소화하기로 함
  • 데이터베이스가 전부 Redis?
    • 일단은 MySQL이든 Redis든 구현하자
      - 상품조회 / 지점조회가 빈번히 일어나서 (api-gateway나 order-service가 일단 캐싱을 안하기로 했으니)
      - order-service는 원래 payment-service의 이벤트 처리를 기다리는 동안 저장하려했는데
      - 그냥 주문조회 쌓아두는 목적으로 RDB로 저장하면 될듯?