728x90

 

※커피주문 마이크로서비스 구현해보기

  1. RESTFull방식

  2. 큐를 이용해서(메시지를 전달)

 

넷플릭스는 MSA지만 모놀리식이라고 느껴진다.

devOps팀이 권한을 가지고 설계부터 구현 운영까지 도맡는다.

 

http://www.yes24.com/Product/Goods/64988508

-책참고

 

--커피주문 프로젝트 구성

 

각각 독립된 프로젝트 3개 - 서버주소도 각기 다름

 

--커피주문 마이크로서비스 패키지 구성

  • 서비스의 개발이 기술적인 제약사항에 영향을 받지 않고 도메인에 집중해서 설계될 수 있게 도메인 영역과 기술 영역을 구분한다.

  • 도메인 영역에서 정의하고 구현된 업무 로직을 기술 영역인 스프링부트 영역해서 실해하는 관계이다.

 

inMemory사용 -> 컴퓨터가 켜져있는 동안에만 데이터가 남아있는 DB

 

 

--큐잉 시스템 특징

  • 마이크로서비스 간에 데이터 연계가 필요할 경우 이를 해결하기 위해 큐잉 시스템인 카프카 시스템을 설치

  • 마이크로서비스 간 메시지를 발행하고 구독할 수 있는 매커니즘을 제공

  • 마이크로서비스 간 직접적인 호출을 대신할 수 있는 느슨한 관계를 유지

  • 카프카 서버를 설치하면 주키퍼(Zookeeper)가 포함되어 있다.

  • 주키퍼를 기동한 후에 카프카를 기동한다.

 

--큐잉 시스템 구성

 

--스프링 클라우드 기반 마이크로서비스 아키텍처 구성요소

 

✔설정 서버

✔유레카 서버 : 마이크로서비스를 등록해주는 역할

✔줄 서버 : 라우팅 기능을 수행, url 주소 줄 서버로 접속

✔터빈 서버

✔히스트릭스 대시보드 서버

 

 

 

※환경설정

SpringToolSuite4 스프링부트 실행

 

https://github.com/architectstory

깃허브에서 소스가져오기(clone repository)

 

 

->git의 서버하나씩 -> 프로젝트 import

javaEE -> configure - add gradle nature

 

 

카프카 다운

 

https://kafka.apache.org/downloads

 

카프카 실행(cd C:\Users\mhee4\Desktop\MSA\kafka_2.12-2.3.0\bin\windows)

 

zookeeper-server-start.bat ../../config/zookeeper.properties

 

kafka-server-start.bat ../../config/server.properties

 

{"id":"","orderNumber":"1","coffeeName":"espresso","coffeeCount":"2","customerName":"kevin"}

 

http://localhost:7070/hystrix.stream

 

http://localhost:9999/turbine.stream

 

member:8081

order:8079

stataus:8082

eureka:9091

zuul:9090 - 서버테스트는 줄서버인 9090으로

  server:
    port: 9090 
   coffeeOrder: #routing id
    path: /coffeeOrder/** #zuul context root
    serviceId: msa-service-coffee-order #spring application name
    
   coffeeMember:
    path: /coffeeMember/**
    serviceId: msa-service-coffee-member
    
   coffeeStatus:
    path: /coffeeStatus/** 
    serviceId: msa-service-coffee-status

 

 

--json으로 전달하고 싶음 -> requestBody로 데이터 전달함

 

 

 

**order

-Rest

orderRestController -kafka로 전달

-messageq

kafkaProducerConfig : 카프카서버설정

KafkaProduce

 

**status

-messageq

KafkaConsumerConfig : 카프카서버설정

KafkaConsumer

 

 

**실행순서(포트번호 먼저확인)

  1. confit-server ->run as Spring Boot App

  2. eureka-server

  3. zuul-server

  4. turbine-server

  5. dashboard-server

  6. coffee-member

  7. coffee-order

  8. coffee-status

 

 

--데이터가 잘 들어가나 PUT방식으로 확인(구글크롬앱 rest client검색 후 YARC설치)

(회원테이블 및 데이터 생성)

http://localhost9090/createMemberTable(PUT)

http://localhost9090/insertMemberData(PUT)

 

http://localhost8081/console창에서

jdbc:h2:mom:testdb입력 후 접속

 

select * from member

 

(주문 처리 상태 테이블 생성)

http://localhost9090/coffeeStatus/createStatusTable(PUT)

 

select * from coffee_order_status확인

 

(커피주문)

http://localhost:9090/coffeeOrder/coffeeOrder(POST)

{"id":"","orderNumber":"1","coffeeName":"espresso","coffeeCount":"2","customerName":"kevin"}

 

select * from order_entityjpo확인

 

(주문정보구독)

select * from coffee_order_status확인

 

 

728x90

'FULLSTACK > MSA' 카테고리의 다른 글

12/9 MSA 1차시  (0) 2020.12.09

+ Recent posts