hawtio를 사용하여 Apache Camel을 시각화하는 경로 - 도입편

안녕하세요.저는 서무라고 합니다.
이번에는 hawtio를 사용하여 Apache Camel 노선을 시각화하는 방법을 쓰고 싶습니다.

hawtio와의 결말은?


공식http://hawt.io/
대략적으로 말하면 아파치 카멜과 JBoss Fuse 등 Java 앱에 대시보드를 추가하는 모듈이다.
Apache Camel과 JBoss Fuse는 Red Hat의 엔지니어를 중심으로 개발되었습니다.
hawtio도 그들을 중심으로 개발됐다.

기본 사용 단계

  • hawtio의war 파일을 다운로드하고 자바 프로젝트에war 파일을 포함
  • 자바 프로젝트는hawtio 드라이버 클래스의 의존성을 포함한다
  • 프로그램 주체에hawtiowar 파일을 불러와 포트에 비추기
  • 이렇게 하면 계기판을 사용할 수 있다.
    Apache Camel 경로를 hawtio 등에 매핑할 필요는 없습니다.
    다음은 절차에 대한 상세한 설명을 설명할 것이다.
    이번 샘플 코드는 여기 있습니다.
    https://github.com/Cuhey3/hawtiosample

    hawtio의war 파일 가져오기


    hawtio 호스트는 대시보드용 전단 (> 및 JS) 을 포함하고 War 파일로 Maven 창고에 로그인합니다.
    War 파일에도 hawtio-default, hawtio-jboss 등 다양한 종류가 있는데 이번에는 hawtio-web-2.0이다.War를 사용하기로 결정했습니다.
    pom.xml
    <dependency>
        <groupId>io.hawt</groupId>
        <artifactId>hawtio-web</artifactId>
        <version>2.0.0</version>
        <type>war</type>
    </dependency>
    
    의존성을 선언하면hawtio-web.2.0.0.Warr를 다운로드했기 때문에 프로젝트의 최고 수준으로 복사합니다.
    선언은 필요 없으니 이 부분부터 삭제하자.(이 근처의 절차는 좀 낭비된다. 자연 절차를 아는 사람이 알려주면 기쁠 거야.)

    hawtio 드라이버 클래스에 대한 의존성 포함


    여기는 hawtio-embedded-2.0입니다.jar을 사용합니다.
    pom.xml
    <dependency>
        <groupId>io.hawt</groupId>
        <artifactId>hawtio-embedded</artifactId>
        <version>2.0.0</version>
    </dependency>
    

    프로그램 주체에서 시작하기


    HawtioMain.java
    package com.heroku.myapp.hawtiosample;
    
    import io.hawt.embedded.Main;
    import java.util.Optional;
    import org.springframework.stereotype.Component;
    
    @Component
    public class HatwioMain {
    
        public HatwioMain() throws Exception {
            Main main = new Main();
            System.setProperty("hawtio.authenticationEnabled", "false");
            String port = Optional.ofNullable(System.getenv("PORT")).orElse("2525");
            main.setPort(Integer.parseInt(port));
            main.setContextPath("/foo");
            main.setWarLocation("./");
            main.run();
        }
    }
    
    Spring Boot을 사용하는 경우 이 예와 같이@Component 설명을 덧붙여 단식에서 시동을 걸면 됩니다.
    DI를 사용하지 않으면, 주 클래스에서run () hawtio 이전에 Camel 노선을 기술해야 합니다.
    어떤 경우든 위에서 말한 hawtio는 자동으로 Camel 노선을 수집하기 때문에 귀속 등이 필요하지 않습니다.
    Main main = new Main(); main.run();이런 거 잘 아시겠지만 Camel Rider.
    이것은 org입니다.apache.camel.main.Main과 전혀 다른 반에서 RouteBuilder를 추가할 수 없음을 주의하십시오.

    계기판 보세요.


    실행 프로그램
    http://localhost:2525/foo/
    시작 페이지가 표시됩니다.
    같은 물건도 헤로쿠에서 디자인되어 있으니 보세요.
    http://hawtiosample.herokuapp.com/foo/

    왼쪽 상단의 라벨'Camel'을 누르면 Camel 노선의 화면으로 전환됩니다.
    전체 노선의 통계를 볼 수 있다.
    이번 샘플 코스는 10회마다 1회 확률로 던지는 예외로,'페이리드 핸들드'종목이 누적된 계수를 알 수 있다.

    Routes HawtioSampleRoute Route Diagram을 선택합니다.
    가시화된 거대한 카멜 노선이 나타났다.

    여기의 루트 정의는 다음과 같은 내용을 참조할 수 있다.
    https://github.com/Cuhey3/hawtiosample/blob/master/src/main/java/com/heroku/myapp/hawtiosample/MyRoute.java
    시각화된 견본이 되기 위해 복잡하지만 무의미한 뿌리 정의를 내렸다.
    내용을 요약해서 설명하는 말
  • 먼저min=1부터max=10까지 무작위로 선택한 정수를Body(코드에서min,max를 자유롭게 설정할 수 있음)
  • 로 설정합니다.
  • 짝수 또는 홀수로 첫 번째 분기
  • 분기 앞에서 얻을 수 있는 정수를 열거하고 두 번째 분기
  • 를 진행한다.
  • 두 번째 분지 이후 각 정수에 있는 약수를 나타내는 모크 단점
  • 을 추가한다.
  • 분기를 종합하여 경로를 완성한다
  • 다음 기사에서는
    hawtio가 시각화될 때, 나는 불필요한 정의 노선에 대한 tips를 쓰고 싶다.
    마지막으로 계기판.메모리 사용량과 CPU 로드 등 항상 그런 것들이 한눈에 들어온다.

    이상은hawtio를 도입하기 전의 설명입니다.
    Apache Camel 애플리케이션을 모니터링해야 하는 경우
    Camel 노선에 혼자서 감시용 단점을 추가하면 디스플레이에 사용할 전단을 만드는 것은 상당히 번거롭다
    나는 장애가 없으면 hawtio를 끊임없이 사용하는 것이 좋다고 생각한다.

    좋은 웹페이지 즐겨찾기