전체 글(96)
-
통합로그 - 프로그램설정
프로그램설정 주문서스비는 크게 3개의 어플리케이션 서버로 이루어져 있다. 여기서 로그를 확인 하기 위해서는 각각 서비스의 로그를 확인해야하는 번거로움이 있고 특정 장애나 주문정보 확인을 위해 로그 분석을 하기에는 많은 불편함이 있을 수 있다. 이를 해소 하기 위해서 elasticsearch, logstash, kibana를 이용하여 통합로그 예제를 만들어 보았다. elasticsearch, logstash는 어플리케이션의 로그를 수집하는 역할로 보면 될 것이고, kibana는 대쉬보드 형태로 수집된 로그를 웹페이지를 통하여서 시각적으로 확인 할 수 있다. 사전설치 프로그램 Elasticsearch: http://www.elastic.co/kr/downloads/elasticsearch Logstash: ..
2020.02.04 -
Spring Cloud: Netflix Hystrix - 테스트
Netflix Hystrix 테스트 시나리오TC1: discovery-service, hystrix-dashboard, order-service 실행 후 서비스 호출TC2: 모든 서비스 실행 후 서비스 호출 TC101. 서비스 호출 후 FallBack 메소드 실행 여부 확인 - Postman에서 테스트 결과 응답결과 메세지에 FallBack 메소드에서 정의한 메세지가 출력되는 것을 확인 할 수 있다. 02. FallBack 메소드가 정상적으로 실행 된 경우 주문상태는 임시상태인지 테이블 확인 - 주문정보도 FallBack 메소드에서 구현한데로 임시상태로 저장 된 것을 확인 할 수 있다. 03. DashBoard 에서 주문 서비스 호출 여부 확인 - 서비스 확인 을 위해서 위와 같이 URL(http://l..
2020.01.11 -
Spring Cloud: Netflix Hystrix - 프로젝트설정
Netflix Hystrix 예를 들어 앞선 주문서비스를 보면 사용자가 주문 요청을 하면 주문서비스에서 주문정보를 받고 결제서비스, 상품재고 서비스를 호출하여 결제 및상품의 재고 처리를 하도록 서비스를 분리하였다. 하지만 만약에 결제 서비스에 장애가 발생하는 경우 이에 대한 처리 프로세스가 없었다. 이러한 장애처리를 위해 Netflix의 Hystrix를 통하여 장애 인지 및 FallBack 구현을 통하여 장애에 대한 대응 로직을 처리 할 수 있다. 그리고 Hystrix DashBoard를 통하여서 서비스 상태를 확인 할 수도 있다. 프로젝트설정앞선 예제와 동일하게 메이븐 모듈 프로젝트를 생성한다.아래의 순서대로 프로젝트를 생성한다. discovery-service: Eureka Serverhystrix-..
2020.01.11 -
Spring Cloud: Zuul and Ribbon
Zuul And Ribbon ZuulZuul의 두가지 큰 기능은 Routing 과 Filter 이다. 01.Routing Micro Service는 서비스 단위로 사용자에게 서비스를 제공해준다. 하지만 관리의 측면에서 보면 서비스별로 주소 포트를 일일이 관리하기란 쉬운 일이 아닐것이다. Zuul의 가장 큰 목적은 클라이언트로 부터 모든 요청을 받아 내부 마이크로서비스들에게 요청을 전달하므로 단일 종단점을 갖게한다. [Zuul과 Ribbon을 사용한 주문/배송조회 서비스흐름] 위의 그림을 보고 예를 들어 보도록 하겠다. 사용자가 주문요청 서비스와, 배송조회 서비스를 요청한다고 하면 서버 설정은 주문서비스는 7000번 포트에서 실행되고 있고, 배송서비스는 8000번 포트에서 실행되고 있다. 기존데로 하면 주..
2019.12.01 -
Spring Cloud: Discovery Service with Netflix Eureka - Client
Spring Discovery Service with Netflix Eureka - Client 앞에 예제에서는 Eureka Server 를 만들어 보았다. 이제 실제적인 클라이언트 서비스를 만들어 보도록 하자. 앞에서 이미 필요한 프로젝트는 생성 하였기 때문에 각 서비스 별로 변경 된 부분에 대해서 살펴 보도록 하겠다. 프로젝트 전체 소스는 https://github.com/roopy1210/spring-msa-with-eureka 참고하여 주기 바랍니다. Eureka Client - 주문서비스주문서비스는 사용자가 http://localhost:7000/order URL을 통하여 접속한다. 이제 설정파일, 메인프로그램, Controller 순으로 살펴보도록 하자. 01. application.ymlse..
2019.11.14 -
Spring Cloud: Discovery Service with Netflix Eureka - Server
Spring Discovery Service with Netflix Eureka Eureka Server를 통하여 앞에서 만든 주문서비스를 등록하고 Eureka Client를 이용하여서 API를 호출 하는 방법에 대해 알아보도록 하겠다. 프로젝트 소스는 https://github.com/roopy1210/spring-msa-with-eureka 참고 하여 주시기바랍니다. 프로젝트준비 프로젝트는 앞에서 만든 방법으로 메이븐 모듈 프로젝트를 생성한다. 1. 부모 메이븐 프로젝트 생성 2. Eureka Server 프로젝트 생성 2. 주문서비스 프로젝트 생성 3. 결제서비스 프로젝트 생성 4. 상품서비스 프로젝트 생성 [프로젝트구조] 앞선 RestTemplate 프로젝트와 틀린점은 URL로 호출 하는 것이 아..
2019.11.12