欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot制作Docker鏡像接入SkyWalking的詳細(xì)過程

 更新時(shí)間:2025年05月05日 13:07:07   作者:大G哥  
本文通過實(shí)際操作完成了如何基于springboot項(xiàng)目接入skyalking的詳細(xì)過程,并進(jìn)一步將springboot項(xiàng)目制作容器對接skyalking的詳細(xì)操作,感興趣的朋友一起看看吧

一、前言

隨著微服務(wù)開發(fā)模式越來越成熟,微服務(wù)的健康檢查、服務(wù)鏈接追蹤也成為很多顯示運(yùn)行的項(xiàng)目必須要考慮的事項(xiàng)。微服務(wù)鏈路追蹤在一些大的服務(wù)平臺(tái)中起著非常重要的作用,不僅可以監(jiān)控各個(gè)服務(wù)的健康狀況,也可以協(xié)助開發(fā)、測試、運(yùn)維等人員快速排查、分析和定位線上問題,同時(shí)也可以監(jiān)控服務(wù)運(yùn)行過程中各個(gè)服務(wù)之間的調(diào)用情況,性能瓶頸點(diǎn)的定位等,可以說基本涵蓋了服務(wù)運(yùn)行過程中的各項(xiàng)重要指標(biāo)的可視化,在以springboot為技術(shù)框架的微服務(wù)生態(tài)中,skywalking是一個(gè)很好的鏈路追蹤組件,在很多項(xiàng)目中發(fā)揮過重要的用場,本文以SpringBoot為例,探討如何在微服務(wù)進(jìn)行容器化之后接入skywalking。

二、SkyWalking介紹

2.1 SkyWalking是什么

 SkyWalking是一個(gè)開源的可觀測平臺(tái),用于從服務(wù)和云原生等基礎(chǔ)設(shè)施收集、分析、聚合以及可視化數(shù)據(jù)。官網(wǎng)地址: Apache SkyWalking

SkyWalking 提供了一種簡便的方式來清晰地觀測分布式系統(tǒng)。相比較zipkin而言,skywalking利用agent字節(jié)碼增強(qiáng)技術(shù)實(shí)現(xiàn)代碼無侵入,通信方式采用GRPC,性能較好,實(shí)現(xiàn)方式是java探針,支持告警,支持JVM監(jiān)控,支持全局調(diào)用統(tǒng)計(jì),UI界面更加強(qiáng)大等優(yōu)點(diǎn)。

2.2 SkyWalking核心功能

SkyWalking 有哪些功能呢?以下列舉其主要的功能點(diǎn):

  • 監(jiān)控手段豐富,可以通過語言探針和 service mesh 獲得監(jiān)控是數(shù)據(jù);
  • 多種類型的語言自動(dòng)探針,包括 Java,.NET Core 和 Node.JS;
  • 輕量高效,無需大數(shù)據(jù)平臺(tái),和大量的服務(wù)器資源;
  • 模塊化,UI、存儲(chǔ)、集群管理都有多種機(jī)制可選;
  • 支持各類告警機(jī)制;
  • 提供優(yōu)秀的可視化解決方案,支持各類監(jiān)控?cái)?shù)據(jù)的可視化;

2.3 SkyWalking整體架構(gòu)

下面是SkyWalking的整體架構(gòu)圖

從官網(wǎng)提供的Skywalking架構(gòu)圖來看,分成幾個(gè)部分,簡單來說,可以分成下面幾個(gè)部分:

  • OAP后端
  • 負(fù)責(zé)接收 Agent 發(fā)送的 Tracing 和Metric的數(shù)據(jù)信息,然后進(jìn)行分析Analysis Core,存儲(chǔ)到外部存儲(chǔ)器 Storage ,最終提供查詢Query 功能
  • WEB-UI
  • UI負(fù)責(zé)提供web控制臺(tái),查看鏈路,查看各種指標(biāo),性能等
  • Agent探針
  • Agent負(fù)責(zé)收集日志數(shù)據(jù):Agent以探針的方式,進(jìn)行請求鏈路的數(shù)據(jù)采集,并向OAP服務(wù)器上報(bào)
  • Storage存儲(chǔ)
  • 數(shù)據(jù)的存儲(chǔ)層,支持ElasticSearch、Mysql、H2多種方式

2.4 SkyWalking主要工作流程

官網(wǎng)關(guān)于SkyWalking的詳細(xì)工作流程圖如下

在實(shí)際應(yīng)用中,簡化上面的流程之后其核心工作流程分為下面幾步:

  • 數(shù)據(jù)采集 ,服務(wù)通過探針的方式接入數(shù)據(jù)采集的功能;
  • 上報(bào)服務(wù)器 ,請求鏈路的相關(guān)處理行為會(huì)上報(bào)到OAP服務(wù)中;
  • 數(shù)據(jù)存儲(chǔ) ,進(jìn)行數(shù)據(jù)的聚合管理和分析,并存儲(chǔ)在持久層;
  • 數(shù)據(jù)展現(xiàn) ,通過UI界面進(jìn)行可視化呈現(xiàn)收集的數(shù)據(jù);

三、前置準(zhǔn)備

在正式將微服務(wù)制作成鏡像并通過docker接入SkyWalking之前,需要做一些前置的準(zhǔn)備,參照下面的步驟依次完成。首先確保你后面要使用的服務(wù)器的java環(huán)境已經(jīng)準(zhǔn)備好。

3.1 搭建SkyWalking服務(wù)

3.1.1 下載安裝包

官網(wǎng)安裝包下載地址: Downloads | Apache SkyWalking

下載oap安裝包

oap即Skywalking服務(wù)端,如下進(jìn)到官網(wǎng)后,選擇下面這里的包,選擇合適的版本進(jìn)行下載,這里我選擇9.7.0的版本(版本可以自行選擇);

下載Java Agent包

即服務(wù)端 agent,用于收集來自客戶端的端點(diǎn)信息和指標(biāo)信息,然后上報(bào)到oap服務(wù)端,后續(xù)在springboot項(xiàng)目中為了接入skywalking將微服務(wù)的指標(biāo)信息上報(bào)到skywalking時(shí),就需要通過該Agent包進(jìn)行指標(biāo)收集和上報(bào)

在當(dāng)前的頁面找到Agents ,然后進(jìn)行下載

3.1.2 上傳服務(wù)器目錄

將上面下載的安裝包上傳到服務(wù)器指定目錄,并使用下面的命令進(jìn)行解壓

tar -zxvf apache-skywalking-apm-9.7.0.tar.gz
tar -xvf apache-skywalking-java-agent-9.2.0.tar

1.2.

2.1.3 數(shù)據(jù)庫持久化配置說明

默認(rèn)情況下,如果只是簡單運(yùn)行skywalking服務(wù)做一下集成測試的話,解壓之后使用內(nèi)置的腳本即可啟動(dòng),而在實(shí)際項(xiàng)目中,為了保證運(yùn)行過程中的數(shù)據(jù)安全性,需要對skywalking服務(wù)的運(yùn)行數(shù)據(jù)進(jìn)行持久化存儲(chǔ),官方提供了多種存儲(chǔ)方式,比如es,mysql ,pg等,默認(rèn)不做任何配置的話,數(shù)據(jù)將存儲(chǔ)在h2內(nèi)存數(shù)據(jù)庫中,如果需要配置,進(jìn)入下面的目錄

cd apache-skywalking-apm-bin/config

1.

找到: application.yml 這個(gè)文件進(jìn)行配置即可

關(guān)于如何接入數(shù)據(jù)持久化的操作可以參考另一篇文章,有詳細(xì)的介紹:【微服務(wù)】springboot整合skywalking使用詳解

3.1.4 啟動(dòng)skywalking服務(wù)

使用skywalking的服務(wù),核心需要啟動(dòng)兩個(gè)服務(wù)

  • oapService.sh,oap的服務(wù)啟動(dòng)腳本
  • webappService.sh,web-ui服務(wù)啟動(dòng)腳本

進(jìn)入服務(wù)啟動(dòng)腳本的目錄,在這個(gè)目錄下提供了服務(wù)啟動(dòng)的相關(guān)腳本

cd /apache-skywalking-apm-bin/bin

1.

使用下面的命令進(jìn)行后臺(tái)服務(wù)啟動(dòng)

cd /usr/local/soft/sky/apache-skywalking-apm-bin/bin
#后臺(tái)啟動(dòng): 
./oapService.sh &
./webappService.sh &

使用jps命令檢查一下是否啟動(dòng)成功,如果正常啟動(dòng),可以看到有兩個(gè)Java進(jìn)程

同時(shí),如果你不想分別執(zhí)行兩個(gè)腳本啟動(dòng),也可以直接使用目錄下的startup.sh進(jìn)行啟動(dòng),效果是一樣的

服務(wù)與端口補(bǔ)充說明:

  • skywalking-oap-server:暴露11800和12800兩個(gè)端口,分別為收集監(jiān)控?cái)?shù)據(jù)的端口11800和接受前端請求的端口12800,修改端口可以修改config/applicaiton.yml;
  • skywalking-web-ui:服務(wù)會(huì)占用 8080 端口, 修改端口可以修改webapp/webapp.yml;

3.1.5 訪問控制臺(tái)

啟動(dòng)成功后,可以直接訪問web-ui界面,訪問地址:IP:8080,如果需要修改ui界面的訪問端口,直接修改web-app目錄下的配置文件中的端口即可;

瀏覽器訪問的效果如下:

如果還沒有服務(wù)接入進(jìn)來,頁面上不會(huì)展示相關(guān)的鏈路追蹤信息,類似于懶加載機(jī)制。

3.2 搭建springboot工程

為了接下來對接skywalking,本地需要搭建一個(gè)springboot工程,參照下面的步驟快速完成一個(gè)工程的搭建和運(yùn)行。

3.2.1 導(dǎo)入下面的依賴

在pom文件中引入下面的依賴

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.4</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <finalName>boot-walking</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

3.2.2 配置Dockerfile文件

后續(xù)要通過微服務(wù)制作成docker鏡像接入skywalking,需要提前先準(zhǔn)備一個(gè)Dockerfile,用于構(gòu)建docker鏡像,參考如下:

FROM  openjdk:17-jdk-alpine
ADD ./boot-walking.jar /app/boot-walking.jar
ENTRYPOINT ["java", "-jar", "/app/boot-walking.jar"]

3.2.3 添加測試接口

增加一個(gè)測試接口,用于后續(xù)測試效果

@RestController
public class DockerController {
    //localhost:8082/index
    @GetMapping("/index")
    public String index(){
        return "Hello Docker";
    }
}

運(yùn)行項(xiàng)目后測試一下接口,確??梢允褂?/p>

3.3 springboot 接入skywalking

如果是基于springboot 項(xiàng)目接入skywalking,需要在啟動(dòng)命令中添加相關(guān)的參數(shù),首先找到上面下載到本地的Agent包

然后再在idea中啟動(dòng)時(shí)配置下面的啟動(dòng)參數(shù)選項(xiàng)

-javaagent:E:\code-self\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=boot-walking
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=服務(wù)IP:11800

配置完成,再次啟動(dòng)服務(wù),此時(shí)通過控制臺(tái)可以看到,加載了很多與skywalking相關(guān)的日志內(nèi)容

再次訪問一下上面的接口之后,此時(shí)再去skywalking控制臺(tái),此時(shí)可以發(fā)現(xiàn)微服務(wù)已經(jīng)接入進(jìn)來了

進(jìn)一步,可以通過服務(wù)名稱點(diǎn)進(jìn)去進(jìn)一步查看服務(wù)里面的相關(guān)指標(biāo)信息

四、springboot 制作docker接入skywalking

通過上面的操作,完成了本地Springboot項(xiàng)目接入skywalking的完整過程,接下來進(jìn)一步演示如何將springboot工程制作鏡像,并通過docker容器接入skywalking。

4.1 修改Dockerfile文件

在上一步,我們在工程中增加了一個(gè)Dockerfile文件,通過這個(gè)文件可以制作微服務(wù)的鏡像,但是如果需要在docker啟動(dòng)的時(shí)候接入skywalking,還需要增加其他的配置信息,參考下面的配置:

FROM openjdk:17-jdk-alpine
COPY ./boot-walking.jar /boot-walking.jar
COPY ./skywalking-agent /app/skywalking-agent
CMD java -javaagent:/app/skywalking-agent/skywalking-agent.jar \
       -DSW_AGENT_NAME=sky-boot=boot-docker-walking \
       -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=服務(wù)IP:11800 \
       -jar /boot-walking.jar

 4.2 工程打包上傳服務(wù)器

將本地的springboot工程打成jar包并上傳到服務(wù)器指定目錄

4.3 制作微服務(wù)鏡像

使用下面的命令將微服務(wù)jar包制作成docker鏡像

docker build -t boot-walking:1.0 .

1.

運(yùn)行上面的命令進(jìn)行鏡像構(gòu)建過程

檢查一下鏡像是否構(gòu)建成功

4.4 啟動(dòng)服務(wù)容器

使用下面的命令啟動(dòng)docker容器

docker run -d -it -p 8082:8082 --name=boot-walking-1 boot-walking:1.0

1.

啟動(dòng)成功后,可以通過docker logs命令進(jìn)一步檢查下是否正常運(yùn)行了服務(wù)

通過輸出的日志不難看出,與上面springboot接入時(shí)啟動(dòng)類似,在啟動(dòng)的時(shí)候也輸出了很多與skywalking相關(guān)的日志。

4.5 檢查是否接入成功

然后訪問下服務(wù)器中運(yùn)行的docker服務(wù)接口

此時(shí)再去skywalking控制臺(tái)檢查一下,此時(shí)已經(jīng)正常接入進(jìn)來了

同樣可以點(diǎn)進(jìn)去進(jìn)一步查看各項(xiàng)指標(biāo)信息,比如接口的具體執(zhí)行情況、耗時(shí)、執(zhí)行的鏈路等信息

五、寫在文末

本文通過實(shí)際操作完成了如何基于springboot項(xiàng)目接入skyalking的詳細(xì)過程,并進(jìn)一步將springboot項(xiàng)目制作容器對接skyalking的詳細(xì)操作,基于此,有興趣的同學(xué)還可以繼續(xù)研究和完善,比如如何在skywalking中可視化監(jiān)控微服務(wù)中的日志信息等,希望對看到的同學(xué)有用哦,本篇到此結(jié)束,感謝觀看。

到此這篇關(guān)于SpringBoot制作Docker鏡像接入SkyWalking詳解的文章就介紹到這了,更多相關(guān)SpringBoot docker接入SkyWalking內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實(shí)踐講解SpringBoot自定義初始化Bean+HashMap優(yōu)化策略模式

    實(shí)踐講解SpringBoot自定義初始化Bean+HashMap優(yōu)化策略模式

    本篇講解了SpringBoot自定義初始化Bean+HashMap優(yōu)化策略模式,通過實(shí)踐的方式更通俗易懂,對此不了解的同學(xué)跟著小編往下看吧
    2021-09-09
  • 淺談log4j的rootLogger及其他坑爹的地方

    淺談log4j的rootLogger及其他坑爹的地方

    這篇文章主要介紹了log4j的rootLogger及其他坑爹的地方,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot使用JavaCV處理rtsp流的示例代碼

    SpringBoot使用JavaCV處理rtsp流的示例代碼

    這篇文章主要為大家詳細(xì)介紹了SpringBoot使用JavaCV處理rtsp流,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下
    2024-02-02
  • SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解

    SpringBoot參數(shù)校驗(yàn)之@Valid的使用詳解

    這篇文章主要通過示例為大家詳細(xì)介紹一下介紹了SpringBoot參數(shù)校驗(yàn)中@Valid的使用方法,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-06-06
  • Java初學(xué)者問題圖解(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    Java初學(xué)者問題圖解(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)

    本文通過圖文并茂的形式給大家介紹了java初學(xué)者問題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-04-04
  • Java多線程阻塞與喚醒代碼示例

    Java多線程阻塞與喚醒代碼示例

    本文主要向大家分享了Java多線程中的阻塞與喚醒的相關(guān)內(nèi)容,通過這篇文章大家可以大致了解到進(jìn)入線程阻塞狀態(tài)和可執(zhí)行狀態(tài)的方法,需要的朋友可以了解下。
    2017-09-09
  • springboot項(xiàng)目如何設(shè)置時(shí)區(qū)

    springboot項(xiàng)目如何設(shè)置時(shí)區(qū)

    這篇文章主要介紹了springboot項(xiàng)目如何設(shè)置時(shí)區(qū)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 關(guān)于ZooKeeper原理剖析

    關(guān)于ZooKeeper原理剖析

    ZooKeeper是一種分布式、高可用性的協(xié)調(diào)服務(wù),主要用于幫助系統(tǒng)避免單點(diǎn)故障和建立可靠的應(yīng)用程序,它通過Leader、Follower和Observer的角色來協(xié)調(diào)節(jié)點(diǎn),并提供分布式協(xié)作服務(wù)和維護(hù)配置信息,ZooKeeper在HDFS、YARN、HBase、SmallFS和Kafka等大數(shù)據(jù)產(chǎn)品中都有廣泛的應(yīng)用
    2025-02-02
  • 聊聊注解@Aspect的AOP實(shí)現(xiàn)操作

    聊聊注解@Aspect的AOP實(shí)現(xiàn)操作

    這篇文章主要介紹了聊聊注解@Aspect的AOP實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java使用百度AI接口實(shí)現(xiàn)智能機(jī)器人對話系統(tǒng)

    Java使用百度AI接口實(shí)現(xiàn)智能機(jī)器人對話系統(tǒng)

    AI已經(jīng)在各行各業(yè)中廣泛應(yīng)用,助力于各式各樣的業(yè)務(wù),而在機(jī)器人對話中,我們可以通過利用百度AI中的自然語言處理、問答知識(shí)圖譜等技術(shù),使機(jī)器人可以更加智能化、自然化的為用戶服務(wù),本文介紹Java利用百度AI接口實(shí)現(xiàn)智能機(jī)器人對話系統(tǒng)
    2024-01-01

最新評論