SpringCloud|제1 5 편:마이크로 서비스 예리 한 검 의 APM 플랫폼(一)Skywalking
9328 단어 백 엔 드apmspringcloud자바
Springboot: 2.1.7.RELEASE
SpringCloud: Greenwich.SR2
[TOC]
1.스 카 이 워 크 개요
스 카 이 워 크 는 2016 년 11 월 2 일 국민 오성 이 Github 에 v 1.0 버 전 을 올 려 분산 형 링크 추적 기능 을 제공 하 는 데 사 용 했 고,5.x 를 시작 으로 기능 이 완 선 된 APM(Application Performance Management)시스템 이 됐 으 며,2019 년 4 월 17 일 아파 치 인 큐 베 이 터 를 졸업 하고 본 격 적 으로 아파 치 톱 프로젝트 가 됐다.분포 식 추적,서비스 격자 원 격 측정 분석,도량 집합 과 가시 화 일체화 해결 방안 을 제공한다.공식 적 으로 자신 에 대한 소 개 는 마이크로 서비스,클 라 우 드 원생 과 용기(Docker,Kubernetes,Mesos)구 조 를 바탕 으로 디자인 된 것 이다.
2.Skywalking 주요 기능
먼저 정부 가 제공 한 구조 도 를 살 펴 보 자.그림 과 같다.
스 카 이 워 크 는 전체적으로 네 부분
agent
,collector
,webapp-ui
,storage
으로 구성 된다.그림 10-11 은 위 에서 아래로 응용 층 의 접속 으로 침입 성 이 없 는agent
프로 브 로 접속 할 수 있다.HTTP 또는 gRPC 를 통 해 데 이 터 를 Skywalking 분석 플랫폼collector
에 보 내 고collector
받 은 데 이 터 를 취 합 분석 한 다음 에storage
에 저장 할 수 있다.여 기 는 여러 가지 저장 방식 을 지원 하 는데 주로 H2 와 ElasticSearch 가 있다.마지막 으로webapp-ui
모든 데 이 터 를 보 여줄 수 있다.5.Spring Cloud 와 Skywalking 실전
5.1 Skywalking 배치 구축
실전 을 소개 하기 전에 스 카 이 워 크 배치 구축 방안 을 간단히 소개 하 겠 습 니 다.
여기 서 저장 방식 에 대해 필 자 는 ElasticSearch 를 선 택 했 습 니 다.구체 적 인 버 전 은 6.5.0 이 고 ElasticSearch 의 구축 방식 은 Docker 를 선 택 했 습 니 다.Linux 를 직접 사용 하여 구축 하 는 것 은 복잡 하고 초보 자 에 게 적합 하지 않 으 며 Docker 를 사용 하여 구축 하 는 것 이 간단 하고 편리 합 니 다.
필자 가 구축 한 선행 조건:
java:1.8CentOS:7.6
현재 CentOS 에 Docker 환경 이 없 으 면 다음 문 구 를 사용 하여 빠르게 구축 할 수 있 습 니 다.
yum install docker
빌 드 에 성공 하면 다음 문 구 를 사용 하여 현재 Docker 버 전 을 볼 수 있 습 니 다.
docker -v
필자 가 있 는 이곳 의 수출 은:
Docker version 1.13.1, build 7f2769b/1.13.1
Docker 를 설치 한 후 에는 국내 미 러 스테이션 을 설정 하 는 것 이 좋 습 니 다.그렇지 않 으 면 네트워크 가 좋 지 않 은 상태 에서 Docker 다운로드 실패 등 이 발생 할 수 있 습 니 다.아래 문 구 를 사용 하여 미 러 주 소 를 수정 할 수 있 습 니 다.
vi /etc/docker/daemon.json
필자 가 여기 서 사용 한 것 은 아 리 운 의 미 러 가속 이다.다음 과 같다.
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
독자 여러분 은 스스로 아 리 운 에 가서 자신의 미 러 를 개통 하고 속 도 를 낼 수 있 으 며 구체 적 으로 는 소 개 를 많이 하지 않 습 니 다.
Docker 를 사용 하여 ElasticSearch 6.5.0 을 구축 합 니 다.우선 ElasticSearch 6.5.0 의 미 러 를 다운로드 하고 다음 명령 을 입력 하 십시오.
docker pull elasticsearch:6.5.0
프로그램 다운로드 가 완료 되면 미 러 를 시작 할 수 있 습 니 다.명령 은 다음 과 같 습 니 다.
docker run -d --restart=always --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.5.0
ElasticSearch 의 기본 시작 메모 리 는 1g 입 니 다.현재 서버 의 메모리 가 1g 미 만 이면 인자
-e ES_JAVA_OPTS="-Xms256m -Xmx256m"
를 사용 하여 ElasticSearch 의 시작 메모리 크기 를 제한 할 수 있 습 니 다.전체 문 구 는 다음 과 같 습 니 다.docker run -d --restart=always -e ES_JAVA_OPTS="-Xms256m -Xmx256m" --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.5.0
시작 에 성공 한 후 다음 문 구 를 사용 하여 시작 성공 여 부 를 볼 수 있 습 니 다.
docker ps
결 과 는 그림 과 같다.
ElasticSearch 6.5.0 단일 노드 버 전이 구축 되 었 습 니 다.후속 작업 을 편리 하 게 하기 위해 ElasticSearch 의 이름 을 수정 해 야 합 니 다.입력 명령
docker exec -it es /bin/bash
은 용기 파일 디 렉 터 리 에 들 어가 고 입력vi config/elasticsearch.yml
은 ElasticSearch 설정 파일 에 들 어가 고 수정cluster.name
의 값 을 수정 해 야 합 니 다.필 자 는 여기 서CollectorDBCluster
로 수정 하고 수정 이 완료 되면 현재 수정 사항 을 저장 합 니 다.입력exit
용기 파일 디 렉 터 리 를 종료 하고 입력docker restart es
을 입력 하여 현재 용 기 를 다시 시작 하고 브 라 우 저 에 입력 하 십시오.http://192.168.44.128:9200/다음 정 보 를 보면 ElasticSearch 6.5.0 단일 노드 버 전이 정상적으로 작 동 하고 있다 는 것 을 증명 할 수 있다.{
"name" : "V-N2_ZQ",
"cluster_name" : "CollectorDBCluster",
"cluster_uuid" : "r9bFZ90WRyqSpMz80u61Yg",
"version" : {
"number" : "6.5.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "816e6f6",
"build_date" : "2018-11-09T18:58:36.352602Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
Skywalking 구축,Skywalking 홈 페이지 진입,다운로드 페이지 진입(http://skywalking.apache.org/... )그림 과 같다.
CentOS 에서 실행 해 야 하기 때문에 여기 서 Linux 바 이 너 리 버 전 을 선택 하 십시오.바로 컴 파일 된 버 전 입 니 다.우리 가 컴 파일 할 필요 가 없습니다.CentOS 에 다운로드 한 후에 디 렉 터 리 구 조 를 볼 수 있 습 니 다.그림 과 같 습 니 다.
startup.sh
도 있 습 니 다.storage.elasticsearch.nameSpace
은 우리 앞 에 ElasticSearch 설정 을 구축 하 는cluster.name
입 니 다.필 자 는 여기 있 는 값 이CollectorDBCluster
이 고 현재 구축 하고 있 는 ElasticSearch 의 주 소 를 수정storage.elasticsearch.clusterNodes
합 니 다.Skywalking 에서 기본적으로 사용 하 는 포트 는 8080,11800,12800 입 니 다.이 포트 들 이 점용 되 지 않도록 하 십시오.수정 이 필요 하 다 면
config
디 렉 터 리 의application.yml
과webapp
디 렉 터 리 의webapp.yml
를 수정 할 수 있 습 니 다.다음은 collector 와 webapp-ui 를 시작 하여 bin 디 렉 터 리 에 들 어가 명령
./startup.sh
을 실행 합 니 다.예 를 들 어:브 라 우 저 접근 열기http://192.168.44.128:8080/그림 과 같이 webapp-ui 의 계기판 을 볼 수 있 습 니 다.
스 카 이 워 크 배 치 는 여기까지 입 니 다.스프링 클 라 우 드 가 스 카 이 워 크 와 어떻게 통합 되 는 지 소개 하 겠 습 니 다.
5.2 스프링 클 라 우 드 통합 스 카 이 워 크 실전
먼저 사례 내용 을 간단하게 소개 하고 저 희 는 Zul-Service,Eureka-Service,Consumer-Service 와 Provider-Service 등 4 개의 프로젝트 를 만 들 것 입 니 다.Zul-Service 를 통 해 Consumer-Service 에 방문 하고 Provider-Service 에 방문 하여 링크 호출 을 완료 할 것 을 요청 합 니 다.
전체 구성 도 는 그림 과 같다.
구체 적 인 구현 코드 목록 은 GitHub 창 고 를 참고 할 수 있 습 니 다(https://github.com/meteor1993...)스프링 클 라 우 드 가 스 카 이 워 크 와 어떻게 통합 되 는 지 소개 한다.
스 카 이 워 크 의 프로 브 에이전트 를 사용 해 야 합 니 다.프로젝트 chapter 15 의 디 렉 터 리 에 폴 더 를 새로 만 듭 니 다.이름 은
skywalking
입 니 다.방금 압축 을 풀 었 던 스 카 이 워 크 의 에이전트 전체 폴 더 copyskywalking
입 니 다.여기 서 시작 할 때 자바 에이전트 명령 으로 에이전트 프로 브 를 불 러 오 면 됩 니 다.아이디어 에서 사용 하려 면 시작 설정 을 수정 해 야 합 니 다.오른쪽 상단Edit Configurations...
을 누 르 면 열 린 창 에서 선택Environment->VM Options
하고 다음 스 크 립 트 를 설정 합 니 다.-javaagent:D:\Development\SpringCloudLearning\chapter15\skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=zuul-service
-Dskywalking.collector.backend_service=192.168.44.128:11800
그림:
또한 자바-jar 방식 으로 에이전트 프로 브 를 불 러 올 수 있 습 니 다.우 리 는 전체 maven 프로젝트 를 포장 하여 mvn install 명령 을 실행 하고 자바-jar 방식 으로 시작 할 수 있 습 니 다.시작 명령 에 시작 파 라미 터 를 추가 합 니 다.다음 과 같 습 니 다.
-javaagent:D:\Development\SpringCloudLearning\chapter15\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=consumer-service -Dskywalking.collector.backend_service=192.168.44.128:11800 -jar zuul-0.0.1-SNAPSHOT.jar
네 개의 프로젝트 를 순서대로 시작 한 후 브 라 우 저 로 접근 합 니 다:http://localhost:8080/client/hello?name=spring,몇 번 더 리 셋 한 후,우 리 는 브 라 우 저 를 사용 하여 방문 합 니 다.http://192.168.44.128:8080/예 를 들 면:
상단 표시 줄 의 추적 을 클릭 하면 왼쪽 은 현재 의 모든 방문 요청 을 볼 수 있 습 니 다.하 나 를 마음대로 클릭 하면 오른쪽 에서 상세 한 링크 추적 과정 을 볼 수 있 습 니 다.예 를 들 어:
링크 를 클릭 하면 일부 태그 정 보 를 볼 수 있 습 니 다.점,범위 유형,성공 또는 실패,그리고 일부 Exception 정 보 를 포함 합 니 다.그림 과 같 습 니 다.
계기판 페이지 의 Service 를 클릭 하면 평균 응답 시간,평균 스루풋,평균 지연 통계 등 서비스 와 관련 된 정 보 를 볼 수 있 습 니 다.그림 과 같 습 니 다.
이로써 스프링 클 라 우 드 와 스 카 이 워 크 의 소개 가 끝 났 으 며,관심 있 는 친 구 는 지 텀 의 공식 홈 페이지 를 방문 해 조회 할 수 있다.
6.소결
여기 서 전체 사례 의 시작 순 서 를 요약 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
웹 개발 자가 가지 고 있 는 CentOS 작은 책저 는 이 길이 앞으로 나 아 가 는 것 이 라 고 생각 했 지만 길 은 빙빙 돌 고 있 습 니 다.종이 위 에 있 는 것 은 결국 얕 은 것 을 깨 닫 고 처음에 보면 종종 무슨 일 인지 모 르 며 전체적인 경지 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.