专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

这篇具有很好参考价值的文章主要介绍了专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言. 当前企业级分布式微服务集群架构图

服务链路追踪已成为不可或缺的一环
专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

一. skywalking是什么

skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入apache 孵化器。
skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器化技术
(docker、K8s、Mesos)架构而设计,它是一款优秀的 APM(Application Performance Management)工具。skywalking是观察性分析平台和应用性能管理系统。提供分布
式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

二. 为什么需要服务追踪

  • 在微服务架构下,由于进行了服务拆分,一次请求往往需要涉及多个服务,每个服务可能是由不同的团队开发,使用了不同的编程语言,有可能部署在不同的机器上,分布在不同的数据中心。服务跟踪系统可以跟踪记录一次用户请求都发起了哪些调用,经过哪些服务处理,并且记录每一次调用所涉及的服务的详细信息,通过查看完整的调用链路,形成拓补图可以更加直观的了解业务,也可以针对当前的系统进行分析,是否需要扩容、优化接口、失败缓解,还有通过日志快速定位是调用失败的环节。

  • SkyWalking专门为微服务架构和云原生架构系统而设计并且支持分布式链路追踪的APM系统。
    SkyWalking通过加载探针的方式收集应用调用链路信息,并对采集的调用链路信息进行分析,生成应用间关系和服务间关系以及服务指标。Apache SkyWalking (Incubating)目前支持多种语言,其中包括Java,.Net Core ,Node.js和Go语言。

  • 目前skywalking已经支持从6个可视化维度剖析分布式系统的运行情况。
    总览视图是应用和组件的全局视图,其中包括组件应用数量应用的告警波动,慢服务列表以及应用吞吐量;拓扑图从应用依赖关系出发,展现整个应用的拓扑关系;应用视图则是从单个应用的角度,展现应用的上下游关系,TopN的服务和服务器,JVM的相关信息以及对应的主机信息。服务视图关注单个服务入口的运行情况以及此服务的上下游依赖关系,依赖度,帮助用户针对单个服务的优化和监控;调用链展现了调用的单次请求经过的所有埋点以及每个埋点的执行时长;告警视图根据配置阈值针对应用、服务器、服务进行实时告警。

SkyWalking中默认使用的端口有8080、11800、12800,请保证这些端口未被占用 。

三 链路追踪框架对比

  1. Zipkin是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。
  2. Pinpoint是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无 代码侵入。
  3. SkyWalking是本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能较强,接入端 无代码侵入。目前已加入Apache孵化器。
  4. CAT是大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

3.1 性能对比

模拟了三种并发用户:500,750,1000。使用jmeter测试,每个线程发送30个请求,设置思考时间为10ms。使用的采样率为1,即 100%,这边与生产可能有差别。pinpoint默认的采样率为20,即50%,通过设置agent的配置文件改为100%。zipkin默认也是1。组合 起来,一共有12种。下面看下汇总表:

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】
从上表可以看出,在三种链路监控组件中,skywalking的探针对吞吐量的影响最小,zipkin的吞吐量居中。pinpoint的探针对吞吐量的 影响较为明显,在500并发用户时,测试服务的吞吐量从1385降低到774,影响很大。然后再看下CPU和memory的影响,在内部服务器 进行的压测,对CPU和memory的影响都差不多在10%之内。

四. 链路追踪的实际应用预览

4.1 捋清业务

我们都知道,在一般场景下,我们很难直观的了解系统的运行、业务的流程,因为传统的都是文字需求说明和枯燥的代码。通过链路追踪,可以根据调用链路来捋清楚服务间的调用关系,如果 API 设计符合规范,甚至可以直观的了解调用的服务作用。这对于刚刚接触系统的开发人员十分重要。

4.2 分析耗时

链路的基本功能,服务间的调用耗时记录,如果服务耗时过长,会影响整体的用户体验,甚至会抛出超时异常等,这样的情况在微服务架构中也是时有发生。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

4.3 可视化错误

微服务调用链路发生错误,可以直观的显示查看,定位到被调用服务的接口,及时排查微服务中错误原因。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

4.4 优化链路

显示完整的调用链路,根据业务分析合理性、可读性、健壮性,是否重复调用某一个服务,是否链路过长,有没有可以优化的,链路是否清晰。有些场景比较复杂,比如数据中心比较分散,服务分布在不同的数据中心,但是服务中心之间因为地域原因,距离远,延迟高,这可能不符合设计要求,因此就要根据链路来找到最近的数据中心,然后配置调用最近的数据中心的服务。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

4.5 生成网络拓扑

通过服务追踪系统中记录的链路信息,可以生成一张系统的网络调用拓扑图,它可以反映系统都依赖了哪些服务,以及服务之间的调用关系是什么样的,可以一目了然。除此之外,在网络拓扑图上还可以把服务调用的详细信息也标出来,也能起到服务监控的作用。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

4.6 SkyWalking 主要功能特性

  1. 多种监控手段,可以通过语言探针和service mesh获得监控的数据;
  2. 支持多种语言自动探针,包括 Java,.NET Core 和 Node.JS;
  3. 轻量高效,无需大数据平台和大量的服务器资源;
  4. 模块化,UI、存储、集群管理都有多种机制可选;
  5. 支持告警;
  6. 优秀的可视化解决方案;

五. 使用Docker安装部署SkyWalking

5.1 查看官网版本

官网:http://skywalking.apache.org/
下载:http://skywalking.apache.org/downloads/
Github:https://github.com/apache/skywalking/
文档: https://skywalking.apache.org/docs/main/v8.4.0/readme/
中文文档: https://skyapm.github.io/document-cn-translation-of-skywalking/

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

从官网可以看出 最新版本已经9.0版本了,但是我们使用es作为存储最好是使用明确存储了方式的版本 8.7.0

5.1 拉取镜像

5.1.1 尝鲜版

docker pull elasticsearch:7.12.0 

默认es存储数据镜像 
docker pull apache/skywalking-oap-server:8.7.0-es7 

webUI界面镜像 
docker pull apache/skywalking-ui:8.7.0 

制作微服项目镜像 
docker pull openjdk:8-alpine3.9

5.1.2 稳定版

docker pull elasticsearch:7.9.0 

默认es存储数据镜像 
docker pull apache/skywalking-oap-server:8.1.0-es7 

webUI界面镜像 
docker pull apache/skywalking-ui:8.1.0 

制作微服项目镜像 
docker pull openjdk:8-alpine3.9

5.1.3 备份镜像

最新版:
docker save apache/skywalking-oap-server:8.7.0-es7 apache/skywalking-ui:8.7.0 elasticsearch:7.12.0 -o skywalking8.7.0.tar 

稳定版:
docker save apache/skywalking-oap-server:8.1.0-es7 apache/skywalking-ui:8.1.0 elasticsearch:7.9.1 -o skywalking8.1.0.tar

5.2 docker-compose 启动SkyWalking

5.2.1 docker-compose的安装

  • 下载v2.2.2版本的docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose --version
  • 添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
  • 测试安装是否成功

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

5.2.2 编写SkyWalking的docker-compose文件

这里使用最新版本的Skywalking镜像

version: '3'
services:
   es7:
    image: elasticsearch:7.12.1
    container_name: es7
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
    volumes:
      - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
      - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
    ports:
      - 9200:9200
      - 9300:9300

   oap:
    image: apache/skywalking-oap-server:8.7.0-es7
    container_name: oap
    depends_on: 
      - es7
    links:
      - es7
    ports:
      - "11800:11800"
      - "12800:12800"
    healthcheck:
      test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      SW_STORAGE: elasticsearch7
      SW_STORAGE_ES_CLUSTER_NODES: es7:9200
      SW_HEALTH_CHECKER: default
      TZ: Asia/Shanghai
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms2048m -Xmx2048m"

   ui:
    image: apache/skywalking-ui:8.7.0
    container_name: ui
    depends_on: 
      - oap
    links:
      - oap
    ports:
      - "8088:8080"  #为了防止8080端口冲突 这里用8088端口映射
    environment:
      SW_OAP_ADDRESS: http://oap:12800
      TZ: Asia/Shanghai

启动服务

docker-compose up -d

查看启动

docker-compose ps

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

5.2.3 测试SkyWalking的UI界面

在浏览器输入 服务器地址:8088
例如:http://192.168.198.120:8088

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

六 总结

skywalking就介绍到这里,本章节仅仅只是入门,简单使用skywalking,实际上里面还有很多功能没有介绍,有兴趣的同学可以按照上面的教程安装部署,然后自己探索一下。在现在微服务架构比较流行的环境下,如果没有一个调用链追踪框架,会导致很难排查线上服务调用的问题。skywalking是目前发展势头最快的技术框架的技术框架,因为对代码是无侵入性的,所以目前很多公司都采用skywalking。

以上是根据《官方文档》、观看《图灵架构师课堂》时做的笔记、自己私下练习并成功应用到公司测试环境中。

专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】文章来源地址https://www.toymoban.com/news/detail-400808.html

到了这里,关于专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud Alibaba全家桶——微服务链路追踪SkyWalking

    本文小新为大家带来 微服务链路追踪SkyWalking 相关知识,具体内容包括 SkyWalking简介 , SkyWalking环境搭建部署 , SkyWalking接入微服务 , SkyWalking持久化跟踪数据 , 自定义SkyWalking链路追踪 , SkyWalking集成日志框架 , SkyWalking告警功能 , SkyWalking高可用 , SkyWalking UI介绍 等进行

    2023年04月08日
    浏览(53)
  • 基于Spring Cloud Alibaba+Skywalking的分布式链路追踪设计

    胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优

    2024年04月22日
    浏览(40)
  • 【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控

    skywalking 是一个apm系统,包含监控,追踪,并拥有故障诊断能力的 分布式 系统   Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品,它同时吸收了Zipkin /Pinpoint /CAT 的设计思路。特点是:支持多种插件,UI功能较强,支持非侵入式埋点。目前使用厂商最多,版

    2024年02月08日
    浏览(59)
  • SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

    首先了解一下单机环境 第一步,搭建一个 Elasticsearch 服务。 第二步,下载 SkyWalking 软件包。 第三步,搭建一个 SkyWalking OAP 服务。 第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。 第五步,搭建一个 SkyWalking UI 服务。 准备工作,准备一个docker网络组,网络组的名字为

    2024年02月15日
    浏览(59)
  • 全网最全的微服务链路追踪实践-SkyWalking(看这一篇就够了)

    链路追踪介绍 对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如: 1. 如何串联整个调用链路,快速定位问题? 2. 如何缕清各个微服务之间的依赖关系? 3. 如何进行各个微服务接口的性能分折? 4. 如何跟踪整个业务流程的调用处

    2024年02月03日
    浏览(52)
  • 链路追踪Skywalking应用实战

    2023年09月05日
    浏览(46)
  • 链路追踪Skywalking快速入门

    2023年09月08日
    浏览(45)
  • skywalking全链路追踪

    在上一篇文章skywalking安装教程中我们介绍了skywalking的作用以及如何将其集成到我们的微服务项目中。本篇文章我们介绍在微服务架构中,如何使用skywalking对一次客户端请求进行全链路追踪。 skywalking的介绍分多篇文章: 微服务项目集成skywalking skywalking全链路追踪 何为全链路

    2024年02月14日
    浏览(40)
  • Skywalking链路追踪

    APM(Application Performance Monitoring)系统是一种用于监控和管理应用程序性能的工具。它可以帮助开发人员和运维团队实时监控应用程序的性能指标、识别潜在的性能问题,并提供性能优化建议。 APM系统可以帮助用户及时发现和解决应用程序的性能问题,提升用户体验和系统稳

    2024年01月18日
    浏览(42)
  • Skywalking全链路追踪【学习笔记】

    Skywalking全链路追踪的服务搭建,使用docker进行安装。 搭建【ES】 搭建【SkyWalking】 访问这里:http://localhost:9898/ 就有界面了 启动配置添加【Agent】 日志配置添加【日志】 完成 (~ ̄▽ ̄)~ 本地测试接口请求 然后登入http://localhost:9898/ 进行查看数据 参考 SkyWalking 教程:https

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包