广告
返回顶部
首页 > 资讯 > 精选 >怎么使用docker部署spring boot并接入skywalking
  • 471
分享到

怎么使用docker部署spring boot并接入skywalking

2023-06-14 14:06:31 471人浏览 独家记忆
摘要

小编给大家分享一下怎么使用Docker部署Spring Boot并接入skywalking,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、概述最近在研究skyw

小编给大家分享一下怎么使用Docker部署Spring Boot并接入skywalking,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、概述

最近在研究skywalking,打算使用k8s部署 skywalking 并将 pod 中的应用接入 skywalking 进行服务链路追踪。这篇文章先不介绍 skywalking 在k8s中的部署和使用,而是先介绍如何使用手动和docker的方式使用 skywalking。在整个实践过程中查阅了大量文档,遇到了各种问题,这里将我自己的实践过程记录下来,希望对有同样需求的小伙伴提供一些帮助。

1、skywalking 简介

SkyWalking是一款广受欢迎的国产APM(Application PerfORMance Monitoring,应用性能监控)产品,主要针对微服务、Cloud Native和容器化(Docker、kubernetes、Mesos)架构的应用。SkyWalking的核心是一个分布式追踪系统,目前是Apache基金会的顶级项目

skywalking 的详细介绍可以查看官方文档:skywalking 官网

2、skywalking 架构

从逻辑上讲,SkyWalking分为四个部分:探针,平台后端,存储和UI,如下图所示:

怎么使用docker部署spring boot并接入skywalking

  • 探针收集数据并重新格式化以符合SkyWalking的要求(不同的探针支持不同的来源)。

  • 平台后端支持数据聚合,分析和流处理,涵盖跟踪,指标和日志

  • 储设备通过开放/可插入的界面存储SkyWalking数据。您可以选择现有的实现,例如elasticsearch,H2,MySQL,TiDB,InfluxDB,或者实现自己的实现。

  • UI是一个高度可定制的基于WEB的界面,允许SkyWalking最终用户可视化和管理SkyWalking数据。

 3、skywalking 如何自动上报数据

在使用链路追踪控制台追踪应用的链路数据之前,需要通过客户端将应用数据上报至链路追踪。SkyWalking将Java应用数据上报至链路追踪控制台,首先需要完成埋点工作。SkyWalking既支持自动探针(dubbogrpc、JDBC、OkHttpspringTomcat、Struts、Jedis等),也支持手动埋点(OpenTracing)。本文介绍自动埋点方法。

skywalking 上报数据的原理如下图所示:

怎么使用docker部署spring boot并接入skywalking

二、使用 docker-compose 安装 skywalking-oap-server 和 skywalking-ui

使用下面的命令在linux中安装 docker-compose

yum install -y docker-compose

使用下面的命令创建 skywalking-docker-compose.yaml 文件:

vim skywalking-docker-compose.yaml

这里启动一个 standlone 容器,默认使用 H2 存储数据,如需其他存储可以查看官方文档进行设置。
skywalking-docker-compose.yaml 文件内容如下:

version: '3'services:  oap:    image: apache/skywalking-oap-server:8.4.0-es6    container_name: oap    restart: always    ports:      - 11800:11800 # agent 上报数据的端口,这是 grpc 端口      - 12800:12800 # ui 读取数据的端口, 这是 http 端口  skywaling-ui:    image: apache/skywalking-ui:8.4.0    container_name: ui    depends_on:      - oap    links:      - oap    ports:      - 8088:8080    environment:      - SW_OAP_ADDRESS=oap:12800

使用下面的命令启动skywalking:

docker-compose -f skywalking-docker-compose.yaml up -d

使用下面的命令查看启动日志:

docker-compose -f skywalking-docker-compose.yaml logs -f

启动成功后,访问:http://localhost:8088,可以看到如下界面:

怎么使用docker部署spring boot并接入skywalking

三、手动将 spring boot 接入 skywalking

1、下载 skywalking agent

skywalking 官网下载地址:http://skywalking.apache.org/downloads/
怎么使用docker部署spring boot并接入skywalking
怎么使用docker部署spring boot并接入skywalking

我这里下载的是 apache-skywalking-apm-8.4.0.tar.gz,在linux系统中也可以通过下面的命令下载并解压:

wget https://arcHive.apache.org/dist/skywalking/8.4.0/apache-skywalking-apm-8.4.0.tar.gztar -zxvf apache-skywalking-apm-8.4.0.tar.gz

解压后的目录结构如下图:

怎么使用docker部署spring boot并接入skywalking

agent目录的说明如下图:

怎么使用docker部署spring boot并接入skywalking

2、spring boot 项目自动上报数据

要上报spring boot项目的数据需要配置 skywalking 的接入点和服务名,可以通过下面的方式配置:

修改配置文件

打开前面下载的 agent/config/agent.config文件,找到下面的两个配置:

# The service name in UIagent.service_name=${SW_AGENT_NAME:Your_ApplicationName}# Backend service addresses.collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

根据实际情况进行配置即可,配置修改完成之后,可以通过下面的命令启动spring boot 项目:

java -javaagent:<skywalking-agent-path> -jar spring-boot-demo

请将替换为Agent文件夹中的skywalking-agent.jar的绝对路径。
注意 -javaagent参数一定要在-jar参数之前。

通过命令参数进行配置

服务名可以在应用程序的启动命令行中添加-Dskywalking.agent.service_name参数。
skywalking 接入点可以在应用程序的启动命令行中添加-Dskywalking.collector.backend_service参数。
完整命令如下:

java -javaagent:<skywalking-agent-path> -Dskywalking.agent.service_name=<ServiceName> -Dskywalking.collector.backend_service=<backend-service-addresses>  -jar yourApp.jar

idea中启动参数中配置

我们也可以在 idea 启动配置选项的 VM options 中进行如下配置:

怎么使用docker部署spring boot并接入skywalking

配置完成后,启动项目可以看到如下信息打印到控制台:

怎么使用docker部署spring boot并接入skywalking

查看skywalking 控制台,并没有数据,因为需要先访问接口,才会上报数据到控制台,通过不断的调用测试接口,再次查看控制台可以看到我们的调用情况,如下图所示:

怎么使用docker部署spring boot并接入skywalking

四、使用 docker 部署 spring boot 并接入 skywalking

这里 spring boot 的基础镜像选择 skywalking-base,此镜像中包含 openjdk11skywalking-agent,详细的信息可以参考下面的参考文档。

怎么使用docker部署spring boot并接入skywalking

spring boot 的 Dockerfile文件内容如下:

FROM apache/skywalking-base:8.4.0-es6WORKDIR /appCOPY target/spring-demo-0.0.1-SNAPSHOT.jar spring-demo-0.0.1-SNAPSHOT.jarENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800" \    SW_AGENT_NAME="my-spring-demo-test-adfasdf"CMD java -javaagent:/skywalking/agent/skywalking-agent.jar \         -jar spring-demo-0.0.1-SNAPSHOT.jar

这里使用环境变量的方式为 skywalking 设置自定义参数,环境变量的其他配置可以查看 agent/config/agent.config文件。

使用下面的命令构建镜像:

docker build -t spring-boot-demo .

使用下面的命令启动镜像:

docker run --rm -p 8080:8080 spring-boot-demo

启动成功之后可以访问测试的地址,到 skywalking 控制台查看是否有数据上报,如果没有数据上报,我们需要查看 skywalking agent 的日志,可以在 agent/logs/skywalking-api.log文件中查看报错信息。

以上是“怎么使用docker部署spring boot并接入skywalking”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 怎么使用docker部署spring boot并接入skywalking

本文链接: https://www.lsjlt.com/news/271514.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用docker部署spring boot并接入skywalking
    小编给大家分享一下怎么使用docker部署spring boot并接入skywalking,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、概述最近在研究skyw...
    99+
    2023-06-14
  • 使用docker部署spring boot并接入skywalking的方法
    目录一、概述1、skywalking简介2、skywalking架构 3、skywalking如何自动上报数据二、使用docker-compose安装skywalking-...
    99+
    2022-11-12
  • 如何使用docker部署tomcat并接入skywalking
    这篇文章将为大家详细讲解有关如何使用docker部署tomcat并接入skywalking,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、概述使用 docker 部署 spring boot 并接入 s...
    99+
    2023-06-14
  • 使用 docker部署tomcat并接入skywalking的使用
    目录一、概述二、使用 docker 部署 tomcat 并接入 skywalking总结一、概述 上一篇文章介绍了使用 docker 部署 spring boot 并接入 skywa...
    99+
    2022-11-12
  • 怎么用Docker部署Spring Boot项目
    本篇内容介绍了“怎么用Docker部署Spring Boot项目”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Docker 技术发展为微服务...
    99+
    2023-06-04
  • 如何使用Docker部署Spring Boot开源
    这篇文章给大家介绍如何使用Docker部署Spring Boot开源,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。云收藏项目已经开源2年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时很新的...
    99+
    2023-06-19
  • 如何使用Docker部署Spring Boot项目
    这篇文章主要介绍如何使用Docker部署Spring Boot项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建一个简单的springboot项目一、在 pom.xml 中 ,使用 Spring Boo...
    99+
    2023-06-22
  • 怎么使用Spring Boot+gRPC构建微服务并部署
    这篇文章主要介绍“怎么使用Spring Boot+gRPC构建微服务并部署”,在日常操作中,相信很多人在怎么使用Spring Boot+gRPC构建微服务并部署问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-07-02
  • 使用Spring boot怎么打包部署应用
    今天就跟大家聊聊有关使用Spring boot怎么打包部署应用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、Spring Boot内置webSpring Boot 其默认是集成w...
    99+
    2023-05-30
    springboot
  • Docker中怎么部署并使用Go
    这篇文章主要讲解了“Docker中怎么部署并使用Go”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker中怎么部署并使用Go”吧!Go 是一个开源的编程语言,它能让构造简单、可靠且高效...
    99+
    2023-06-27
  • docker怎么部署mysql8并设置可远程连接
    本文小编为大家详细介绍“docker怎么部署mysql8并设置可远程连接”,内容详细,步骤清晰,细节处理妥当,希望这篇“docker怎么部署mysql8并设置可远程连接”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-02
  • 怎么利用脚本部署一个Spring Boot应用
    这篇文章给大家介绍怎么利用脚本部署一个Spring Boot应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。部署方法如下:在 pom.xml 路径下新建文件 start.sh#!/bin/bash#0、删除原有的日志...
    99+
    2023-05-31
    springboot spring boo
  • 怎么使用docker部署hbase
    这篇文章将为大家详细讲解有关怎么使用docker部署hbase,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装docker先输入docker -v,装过就不用再装了。yum update&nb...
    99+
    2023-06-14
  • 使用Spring Boot+gRPC构建微服务并部署的案例详解
    目录1.  为什么要用Istio?1.1.  为什么要使用gRPC作为通信框架?1.2. 编写业务代码1.3、 编写Dockerfile2. 编写部署文件3. 部...
    99+
    2022-11-13
  • 怎么使用Docker-compose部署mysql
    这篇文章主要介绍了怎么使用Docker-compose部署mysql的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Docker-compose部署mysql文章都会有所收获,下面我们一起来看看吧。一、D...
    99+
    2023-07-06
  • 利用Spring Boot 怎么部署一个微服务项目
    这篇文章将为大家详细讲解有关利用Spring Boot 怎么部署一个微服务项目,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如果开发过spring boot的程序,应该都知道,使用sprin...
    99+
    2023-05-31
    springboot spring boo
  • 怎么使用docker部署k8s项目
    要使用Docker部署Kubernetes项目,可以按照以下步骤进行操作:1. 安装Docker和Kubernetes:首先,确保已...
    99+
    2023-10-11
    docker k8s
  • 怎么使用docker部署rap2服务
    本篇内容介绍了“怎么使用docker部署rap2服务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是r...
    99+
    2022-10-19
  • 怎么使用docker部署react项目
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。怎么使用docker部署react项目?手把手教你在docker部署react项目(docker中部署nginx)1、拉取nginx镜像docker pu...
    99+
    2023-05-14
    React Docker
  • Spring Boot中怎么使用@KafkaListener并发批量接收消息
    这篇“Spring Boot中怎么使用@KafkaListener并发批量接收消息”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作