8장. 경로를 통해 메시지 추적


추적을 사용하면 한 노드에서 다른 노드로 라우팅되므로 메시지를 가로챌 수 있습니다. 라우팅 컨텍스트를 통해 메시지를 추적하여 라우팅 컨텍스트의 성능을 최적화하고 미세 조정할 수 있는 위치를 확인할 수 있습니다. 이 튜토리얼에서는 경로를 통해 메시지를 추적하는 방법을 보여줍니다.

8.1. 목표

이 튜토리얼에서는 다음 작업을 완료합니다.

  • Fuse 통합 관점에서 ZooOrderApp 실행
  • ZooOrderApp에서 추적 활성화
  • ZooOrderApp 에 메시지를 삭제하고 모든 경로 노드를 통해 추적

8.2. 사전 요구 사항

이 튜토리얼을 시작하려면 다음 중 하나에서 생성된 ZooOrderApp 프로젝트가 필요합니다.

8.3. Fuse 통합 화면 설정

메시지 추적을 용이하게하기 위해 작업 공간을 설정하려면 다음을 수행합니다.

  1. 툴 모음 오른쪽에 있는 Open Perspective icon 버튼을 클릭한 다음 목록에서 Fuse Integration 을 선택합니다.

    tutPerspListFIPselected

    Fuse Integration 모드가 기본 레이아웃에서 열립니다.

    TutFIP 63
  2. Cryo stat Navigator 탭을 터미널 탭의 맨 오른쪽으로 끌어 여기에 놓습니다.

    ftTutFIPrearrange

    이 정렬은 라우팅 컨텍스트의 노드를 그래픽으로 표시하는 데 더 많은 공간을 제공하므로 메시지가 라우팅 컨텍스트를 통과하는 경로를 시각적으로 추적할 수 있습니다.

    참고

    라우팅 컨텍스트 .xml 파일에 쉽게 액세스할 수 있도록, 특히 프로젝트가 여러 컨텍스트로 구성된 경우 툴링은 Project ExplorerCamel 컨텍스트 폴더 아래에 해당 컨텍스트를 나열합니다.

    또한 라우팅 컨텍스트의 모든 경로는 컨텍스트 파일 항목 아래에 직접 아이콘으로 표시됩니다. 캔버스의 라우팅 컨텍스트에서 단일 경로를 표시하려면 Project Explorer 에서 해당 아이콘을 두 번 클릭합니다. 라우팅 컨텍스트의 모든 경로를 표시하려면 컨텍스트 파일 항목을 두 번 클릭합니다.

    TutCamelContextsFolderPE

8.4. 메시지 추적 시작

ZooOrderApp 프로젝트에서 메시지 추적을 시작하려면 다음을 수행합니다.

  1. Project Explorer 에서 ZooOrderApp 프로젝트를 확장하여 src/main/resources/OSGI-INF/blueprint/blueprint.xml 을 노출합니다.
  2. src/main/resources/OSGI-INF/blueprint/blueprint.xml 을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다.
  3. Run as Local Camel Context(테스트 제외) 를 선택합니다.

    참고

    로컬 Camel 컨텍스트 를 선택하면 ZooOrderApp 프로젝트에 대한 JUnit 테스트를 아직 생성하지 않았기 때문에 툴링이 테스트 없이 실행 중으로 되돌아갑니다. 나중에 9장. JUnit을 사용하여 경로 테스트 에서 이 작업을 수행합니다.

  4. Cryo stat Navigator 에서 로컬 프로세스를 확장합니다.

    tutMsgTrJMXLocalProcessess
  5. maven [ID] 노드를 마우스 오른쪽 버튼으로 클릭한 다음 연결을 선택합니다.
  6. 경로의 요소를 확장합니다.

    tutMsgTrJMXLCCexpanded
  7. 경로 노드를 마우스 오른쪽 버튼으로 클릭한 다음 추적 시작을 선택합니다.

    tutTraceStart

    툴에는 Diagram View 에서 라우팅 컨텍스트의 그래픽 표현이 표시됩니다.

    tutDiagramNodes

    모든 메시지 흐름 경로를 명확하게 보려면 Diagram View 탭에 깔끔하게 맞게 노드를 드래그하여 노드를 다시 정렬해야 할 수 있습니다. Diagram View 탭이 확장될 수 있도록 Red Hat CodeReady Studio의 다른 보기 및 탭의 크기를 조정해야 할 수도 있습니다.

8.5. 실행 중인 ZooOrderApp 프로젝트에서 메시지 삭제

실행 중인 ZooOrderApp 프로젝트에 메시지를 삭제하려면 다음을 수행합니다.

  1. Project Explorer 에서 ZooOrderApp/src/data 를 확장하여 메시지 파일(message1.xml through message6.xml)에 액세스할 수 있습니다.

    tutMsgFiles
  2. Drag message1.xml 을 사용하여 _context1>Endpoints>file>file>src/data?noop=true 노드에 삭제합니다.

    tutJMXLocalCntxtExpanded

    메시지가 경로를 통과하면 툴링은 경로를 추적하여 각 단계에서 통과를 기록합니다.

8.6. 메시지 뷰 구성

메시지 추적을 표시하려면 메시지 뷰 를 새로 고쳐야 합니다. 또한 모든 메시지 추적에 걸쳐 메시지를 유지하려면 메시지 보기에서 열을 구성해야 합니다.

  1. 메시지 보기를 엽니다.
  2. 패널의 메뉴 표시줄 오른쪽에 있는 상단에 있는 refresh (새로 고침 버튼)를 클릭하여 뷰를 message1.xml 의 메시지 추적으로 채웁니다.
  3. 패널의 메뉴 모음에서 View Menu icon 아이콘을 클릭하고 열 구성을 선택하여 열 구성 마법사 엽니다.

    TutConfigColsDefaults
    참고

    라우팅 컨텍스트의 메시지에 대해 설정한 메시지 헤더인 Destination 이 목록에 표시됩니다.

    메시지 뷰에서 항목을 선택하거나 선택 해제하여 항목을 포함하거나 제외할 수 있습니다. 개별 항목을 강조 표시하고 목록에서 위로 이동하거나 아래로 이동하여 메시지 뷰에 표시되는 columnar 순서를 다시 정렬할 수 있습니다.

  4. 열 구성 마법사에서 다음과 같이 열을 선택하고 순서를 정렬합니다.In the Configure Columns wizard, select and order the columns this way:

    tutMsgVCnfgColsMnu

    이러한 열과 순서는 메시지 뷰에서 다시 변경할 때까지 유지됩니다.

참고

모든 툴링 테이블에서 columnar 레이아웃을 제어할 수 있습니다. 드래그 방법을 사용하여 임시로 테이블 형식을 다시 정렬합니다. 예를 들어 열의 테두리 규칙을 드래그하여 너비를 확장하거나 계약합니다. 열을 숨기려면 해당 경계를 완전히 계약합니다. 열 헤더를 드래그하여 테이블 내의 열을 재배치합니다. 구성을 유지하려면 대신 View Configure Columns 방법을 사용해야 합니다.

8.7. 메시지 추적을 단계별로 처리

메시지 추적을 진행하려면 다음을 수행합니다.

  1. message2.xml 을 드래그하여 _context1>Endpoints>file>src/data?noop=true 노드에 놓습니다.
  2. 콘솔에서 메시지 보기로 전환합니다.
  3. 메시지 보기에서 refresh (새로 고침 버튼)을 클릭하여 뷰를 message2.xml 메시지 추적으로 채웁니다.

    에 메시지를 삭제할 때마다 messages View를 새로 고쳐 메시지 추적으로 채워야 합니다.

  4. 메시지 추적 중 하나를 클릭하여 속성 보기에서 이에 대한 자세한 정보를 확인합니다.

    tutTraceDetails2

    툴링은 속성 보기의 상단 절반에 메시지 추적(메시지 헤더 포함)에 대한 세부 정보와 속성 뷰의 하단 부분에 메시지 인스턴스의 내용을 표시합니다. 따라서 애플리케이션이 경로 내의 모든 단계에서 헤더를 설정하는 경우 메시지 세부 정보를 확인하여 예상대로 설정되었는지 확인할 수 있습니다.

    각 메시지를 강조 표시하여 메시지 인스턴스를 진행하여 특정 메시지가 경로를 통과하는 방법과 경로의 각 단계에서 예상대로 처리되었는지 확인할 수 있습니다.

  5. 다이어그램 보기를 열어 경로의 연결된 단계가 강조 표시되었는지 확인합니다.

    TutMsgTraceDiagNode

    툴링은 Diagram View 에서 경로를 가져오고 타이밍 및 성능 메트릭(밀리초)을 사용하여 처리 단계를 종료합니다. 다이어그램에는 총 메트릭 교환 만 표시됩니다.

  6. 표시된 메트릭 위에 마우스 포인터를 이동하여 메시지 흐름에 대한 추가 지표를 표시합니다.

    tutDVnodeMetrics
    • 메시지를 처리하는 데 걸리는 시간입니다.
    • 메시지를 처리하는 데 걸리는 최대 시간
    • 메시지를 처리하는 데 필요한 최소 시간
  7. 선택적으로, ZooOrderApp/src/data/ data/의 나머지 메시지를 _context1>Endpoints>file>src/data?noop=true 노드는 추적이 활성화된 상태로 유지되는 한 언제든지 삭제할 수 있습니다.

    이후 각 드롭다운에서 refresh (새로 고침 버튼)를 클릭하여 메시지 뷰를 새 메시지 추적으로 채워야 합니다.

  8. 완료되면 다음을 수행합니다.

    • Cryo stat Navigator 에서 _context1 을 마우스 오른쪽 버튼으로 클릭하고 추적 컨텍스트 중지를 선택합니다.
    • 콘솔 을 열고 패널 오른쪽 상단에 있는 Stop icon 버튼을 클릭하여 콘솔을 중지합니다. 그런 다음 Clear icon 버튼을 클릭하여 콘솔 출력을 지웁니다.

8.8. 다음 단계

9장. JUnit을 사용하여 경로 테스트 튜토리얼에서는 프로젝트에 대한 JUnit 테스트 케이스를 생성하고 로컬 Camel 컨텍스트 로 프로젝트를 실행합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.