2.2. Circuit Breaker booster를 빌드하고 실행합니다.

넷플릭스/Hystrix 회로 차단기 구성 요소를 사용하면 분산 애플리케이션이 네트워크 연결 중단 및 백엔드 서비스를 일시적으로 사용할 수 없게 되는 문제를 해결할 수 있습니다. 회로 차단기 패턴의 기본 개념은 종속 서비스의 손실이 자동으로 감지되고 백엔드 서비스를 일시적으로 사용할 수 없는 경우 대체 동작이 프로그램될 수 있다는 것입니다.

Fuse 회로 차단기 부스터는 두 가지 관련 서비스로 구성됩니다.

  • 이름을 로 반환하는 이름 서비스.
  • name 서비스를 호출하여 이름을 가져온 다음 문자열 Hello, NAME.

이 데모에서는 인사말 서비스와 이름 서비스 사이에 Hystrix 회로 차단기가 삽입됩니다. 이름 서비스를 사용할 수 없게 되면 인사말 서비스가 다시 시작될 때까지 대기하는 동안 차단하거나 시간 초과하는 대신 대체 동작으로 대체되고 클라이언트에 즉시 응답할 수 있습니다.

사전 요구 사항

절차

다음 단계에 따라 Circuit breaker booster 프로젝트를 빌드하고 실행합니다.

  1. 쉘 프롬프트를 열고 Maven을 사용하여 명령줄에서 프로젝트를 빌드합니다.

    cd PROJECT_DIR
    mvn clean package
  2. 다음과 같이 새 쉘 프롬프트를 열고 name 서비스를 시작합니다.

    cd name-service
    mvn spring-boot:run -DskipTests -Dserver.port=8081

    Spring Boot가 시작되면 다음과 같은 몇 가지 출력이 표시됩니다.

    ...
    2017-12-08 15:44:24.223  INFO 22758 --- [           main] o.a.camel.spring.SpringCamelContext      : Total 1 routes, of which 1 are started
    2017-12-08 15:44:24.227  INFO 22758 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.20.0 (CamelContext: camel-1) started in 0.776 seconds
    2017-12-08 15:44:24.234  INFO 22758 --- [           main] org.jboss.fuse.boosters.cb.Application   : Started Application in 4.137 seconds (JVM running for 4.744)
  3. 다음과 같이 새 쉘 프롬프트를 열고 인사말 서비스를 시작합니다.

    cd greetings-service
    mvn spring-boot:run -DskipTests

    Spring Boot가 시작되면 다음과 같은 몇 가지 출력이 표시됩니다.

    ...
    2017-12-08 15:46:58.521  INFO 22887 --- [           main] o.a.c.c.s.CamelHttpTransportServlet      : Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
    2017-12-08 15:46:58.524  INFO 22887 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2017-12-08 15:46:58.536  INFO 22887 --- [           main] org.jboss.fuse.boosters.cb.Application   : Started Application in 6.263 seconds (JVM running for 6.819)

    인사말 서비스는 URL http://localhost:8080/camel/greetings 에서 REST 끝점을 노출합니다.

  4. http://localhost:8080으로 이동합니다.

    이 페이지를 열면 서비스를 호출합니다.

    회로 차단기 인사말 서비스

    이 페이지는 회로 차단기의 상태를 모니터링하는 Hystrix 대시보드에 대한 링크도 제공합니다.

    회로 차단기 프로젝트를 위한 Hystrix 대시보드
  5. Camel Hystrix에서 제공하는 회로 차단기 기능을 설명하기 위해 이름 서비스가 실행 중인 쉘 프롬프트 창에서 Ctrl+C 를 눌러 백엔드 이름 서비스를 종료합니다.

    이제 이름 서비스를 사용할 수 없으므로 회로 차단기가 시작되어 인사말 서비스가 호출될 때 중단되지 않도록 합니다.

  6. Hystrix Monitor 대시보드 및 서비스 출력에서 변경 사항을 확인합니다.

    인사말 서비스 출력