8장. 경로를 통해 메시지 추적
추적을 사용하면 한 노드에서 다른 노드로 라우팅되므로 메시지를 가로챌 수 있습니다. 라우팅 컨텍스트를 통해 메시지를 추적하여 라우팅 컨텍스트의 성능을 최적화하고 미세 조정할 수 있는 위치를 확인할 수 있습니다. 이 튜토리얼에서는 경로를 통해 메시지를 추적하는 방법을 보여줍니다.
8.1. 목표
이 튜토리얼에서는 다음 작업을 완료합니다.
-
Fuse 통합 관점에서
ZooOrderApp
실행 -
ZooOrderApp
에서 추적 활성화 -
ZooOrderApp
에 메시지를 삭제하고 모든 경로 노드를 통해 추적
8.2. 사전 요구 사항
이 튜토리얼을 시작하려면 다음 중 하나에서 생성된 ZooOrderApp 프로젝트가 필요합니다.
6장. 라우팅 컨텍스트에 다른 경로 추가 튜토리얼을 완료합니다.
또는
-
2장. 환경 설정 튜토리얼을 완료하고 “리소스 파일 정보” 에 설명된 대로 프로젝트의
블루프린트Contexts/blueprint3.xml
파일을 제공된블루프린트Contexts/blueprint3.xml
파일로 교체합니다.
8.3. Fuse 통합 화면 설정
메시지 추적을 용이하게하기 위해 작업 공간을 설정하려면 다음을 수행합니다.
툴 모음 오른쪽에 있는 버튼을 클릭한 다음 목록에서 Fuse Integration 을 선택합니다.
Fuse Integration 모드가 기본 레이아웃에서 열립니다.
Cryo stat Navigator 탭을 터미널 탭의 맨 오른쪽으로 끌어 여기에 놓습니다.
이 정렬은 라우팅 컨텍스트의 노드를 그래픽으로 표시하는 데 더 많은 공간을 제공하므로 메시지가 라우팅 컨텍스트를 통과하는 경로를 시각적으로 추적할 수 있습니다.
참고라우팅 컨텍스트
.xml
파일에 쉽게 액세스할 수 있도록, 특히 프로젝트가 여러 컨텍스트로 구성된 경우 툴링은 Project Explorer 의Camel
컨텍스트 폴더 아래에 해당 컨텍스트를 나열합니다.또한 라우팅 컨텍스트의 모든 경로는 컨텍스트 파일 항목 아래에 직접 아이콘으로 표시됩니다. 캔버스의 라우팅 컨텍스트에서 단일 경로를 표시하려면 Project Explorer 에서 해당 아이콘을 두 번 클릭합니다. 라우팅 컨텍스트의 모든 경로를 표시하려면 컨텍스트 파일 항목을 두 번 클릭합니다.
8.4. 메시지 추적 시작
ZooOrderApp
프로젝트에서 메시지 추적을 시작하려면 다음을 수행합니다.
-
Project Explorer 에서
ZooOrderApp
프로젝트를 확장하여src/main/resources/OSGI-INF/blueprint/blueprint.xml
을 노출합니다. -
src/main/resources/OSGI-INF/blueprint/blueprint.xml
을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 엽니다. Run as
Local Camel Context(테스트 제외) 를 선택합니다. 참고로컬 Camel 컨텍스트 를 선택하면
ZooOrderApp
프로젝트에 대한 JUnit 테스트를 아직 생성하지 않았기 때문에 툴링이 테스트 없이 실행 중으로 되돌아갑니다. 나중에 9장. JUnit을 사용하여 경로 테스트 에서 이 작업을 수행합니다.Cryo stat Navigator 에서
로컬 프로세스를
확장합니다.-
maven [ID]
노드를 마우스 오른쪽 버튼으로 클릭한 다음 연결을 선택합니다. 경로의 요소를 확장합니다.
경로
노드를 마우스 오른쪽 버튼으로 클릭한 다음 추적 시작을 선택합니다.툴에는 Diagram View 에서 라우팅 컨텍스트의 그래픽 표현이 표시됩니다.
모든 메시지 흐름 경로를 명확하게 보려면 Diagram View 탭에 깔끔하게 맞게 노드를 드래그하여 노드를 다시 정렬해야 할 수 있습니다. Diagram View 탭이 확장될 수 있도록 Red Hat CodeReady Studio의 다른 보기 및 탭의 크기를 조정해야 할 수도 있습니다.
8.5. 실행 중인 ZooOrderApp 프로젝트에서 메시지 삭제
실행 중인 ZooOrderApp 프로젝트에 메시지를 삭제하려면 다음을 수행합니다.
Project Explorer 에서
ZooOrderApp/src/data
를 확장하여 메시지 파일(message1.xml
throughmessage6.xml
)에 액세스할 수 있습니다.Drag
message1.xml
을 사용하여_context1>Endpoints>file>file>src/data?noop=true
노드에 삭제합니다.메시지가 경로를 통과하면 툴링은 경로를 추적하여 각 단계에서 통과를 기록합니다.
8.6. 메시지 뷰 구성
메시지 추적을 표시하려면 메시지 뷰 를 새로 고쳐야 합니다. 또한 모든 메시지 추적에 걸쳐 메시지를 유지하려면 메시지 보기에서 열을 구성해야 합니다.
- 메시지 보기를 엽니다.
-
패널의 메뉴 표시줄 오른쪽에 있는 상단에 있는
(새로 고침 버튼)를 클릭하여 뷰를
message1.xml
의 메시지 추적으로 채웁니다. 패널의 메뉴 모음에서 아이콘을 클릭하고 열 구성을 선택하여 열 구성 마법사 를 엽니다.
참고라우팅 컨텍스트의 메시지에 대해 설정한 메시지 헤더인 Destination 이 목록에 표시됩니다.
메시지 뷰에서 항목을 선택하거나 선택 해제하여 항목을 포함하거나 제외할 수 있습니다. 개별 항목을 강조 표시하고 목록에서 위로 이동하거나 아래로 이동하여 메시지 뷰에 표시되는 columnar 순서를 다시 정렬할 수 있습니다.
열 구성 마법사에서 다음과 같이 열을 선택하고 순서를 정렬합니다.In the Configure Columns wizard, select and order the columns this way:
이러한 열과 순서는 메시지 뷰에서 다시 변경할 때까지 유지됩니다.
모든 툴링 테이블에서 columnar 레이아웃을 제어할 수 있습니다. 드래그 방법을 사용하여 임시로 테이블 형식을 다시 정렬합니다. 예를 들어 열의 테두리 규칙을 드래그하여 너비를 확장하거나 계약합니다. 열을 숨기려면 해당 경계를 완전히 계약합니다. 열 헤더를 드래그하여 테이블 내의 열을 재배치합니다. 구성을 유지하려면 대신 View
8.7. 메시지 추적을 단계별로 처리
메시지 추적을 진행하려면 다음을 수행합니다.
-
message2.xml
을 드래그하여_context1>Endpoints>file>src/data?noop=true
노드에 놓습니다. - 콘솔에서 메시지 보기로 전환합니다.
메시지 보기에서 (새로 고침 버튼)을 클릭하여 뷰를
message2.xml
메시지 추적으로 채웁니다.에 메시지를 삭제할 때마다 messages View를 새로 고쳐 메시지 추적으로 채워야 합니다.
메시지 추적 중 하나를 클릭하여 속성 보기에서 이에 대한 자세한 정보를 확인합니다.
툴링은 속성 보기의 상단 절반에 메시지 추적(메시지 헤더 포함)에 대한 세부 정보와 속성 뷰의 하단 부분에 메시지 인스턴스의 내용을 표시합니다. 따라서 애플리케이션이 경로 내의 모든 단계에서 헤더를 설정하는 경우 메시지 세부 정보를 확인하여 예상대로 설정되었는지 확인할 수 있습니다.
각 메시지를 강조 표시하여 메시지 인스턴스를 진행하여 특정 메시지가 경로를 통과하는 방법과 경로의 각 단계에서 예상대로 처리되었는지 확인할 수 있습니다.
다이어그램 보기를 열어 경로의 연결된 단계가 강조 표시되었는지 확인합니다.
툴링은 Diagram View 에서 경로를 가져오고 타이밍 및 성능 메트릭(밀리초)을 사용하여 처리 단계를 종료합니다. 다이어그램에는 총 메트릭 교환 만 표시됩니다.
표시된 메트릭 위에 마우스 포인터를 이동하여 메시지 흐름에 대한 추가 지표를 표시합니다.
- 메시지를 처리하는 데 걸리는 시간입니다.
- 메시지를 처리하는 데 걸리는 최대 시간
- 메시지를 처리하는 데 필요한 최소 시간
선택적으로,
ZooOrderApp/src/data/
data/의 나머지 메시지를_context1>Endpoints>file>src/data?noop=true
노드는 추적이 활성화된 상태로 유지되는 한 언제든지 삭제할 수 있습니다.이후 각 드롭다운에서 (새로 고침 버튼)를 클릭하여 메시지 뷰를 새 메시지 추적으로 채워야 합니다.
완료되면 다음을 수행합니다.
-
Cryo stat Navigator 에서
_context1
을 마우스 오른쪽 버튼으로 클릭하고 추적 컨텍스트 중지를 선택합니다. - 콘솔 을 열고 패널 오른쪽 상단에 있는 버튼을 클릭하여 콘솔을 중지합니다. 그런 다음 버튼을 클릭하여 콘솔 출력을 지웁니다.
-
Cryo stat Navigator 에서
8.8. 다음 단계
9장. JUnit을 사용하여 경로 테스트 튜토리얼에서는 프로젝트에 대한 JUnit 테스트 케이스를 생성하고 로컬 Camel 컨텍스트
로 프로젝트를 실행합니다.