当前位置: 首页 > news >正文

SkyWalking探针技术监控Spring Boot微服务——部署与应用详解

  • SkyWalking服务端部署
  • 获取 SkyWalking Agent下载与aop对应的版本(这里为9.1.0)
  • 启用动态配置(无需重启应用)
  • 在springboot应用配置logback-spring.xml(需要放在resources目录下)
  • 修改一下Dockerfile将skywalking打到docker中
  • 验证是否安装成功
  • Skywalking记录请求响应监控

在当今微服务架构大行其道的数字化时代,Spring Boot 以其简洁高效的特质成为构建独立、可部署服务的首选框架。然而,随着服务数量的激增和相互依赖关系的日益复杂,应用的可见性和可观测性面临着前所未有的挑战。一个服务链路的延迟如何快速定位?一次突发的性能瓶颈究竟源于哪个微服务?分布式环境下的错误如何有效追踪?
SkyWalking,作为一款强大的开源应用性能监控(APM)和分布式追踪系统,正是应对这些挑战的利器。它专为云原生、微服务和容器化(如Kubernetes)环境设计,提供端到端的调用链路追踪、详尽的性能指标分析(如JVM、GC、HTTP请求、SQL、缓存)、服务拓扑映射以及高效的告警机制。
本文将深入探讨如何将 SkyWalking 无缝集成到您的 Spring Boot 微服务生态中。我们将从核心概念入手,逐步指导您完成 Agent 探针的部署、OAP Server 与存储后端的配置(如Elasticsearch),并最终实现通过 SkyWalking UI 对您的 Spring Boot 服务进行全方位的监控、诊断与性能优化。掌握 SkyWalking,您将获得洞察微服务运行状况的“火眼金睛”,显著提升系统稳定性、排障效率与用户体验,为您的分布式系统保驾护航。让我们开始这段提升微服务可观测性的关键旅程!

SkyWalking服务端部署

创建 docker-compose.yml 文件

version: '3.8'
services:elasticsearch:image: www.ecnfo.com:1443/proxy/docker.elastic.co/elasticsearch/elasticsearch:7.17.10container_name: elasticsearchenvironment:- discovery.type=single-node- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms1g -Xmx1g"- TZ=Asia/Shanghaiulimits:memlock:soft: -1hard: -1volumes:- es_data:/usr/share/elasticsearch/dataports:- 9200:9200networks:- skywalking-net# 添加健康检查healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9200"]interval: 30stimeout: 10sretries: 15start_period: 60skibana:image: www.ecnfo.com:1443/proxy/docker.elastic.co/kibana/kibana:7.17.6container_name: kibanaports:- 5601:5601depends_on:elasticsearch:condition: service_healthyenvironment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200- I18N_LOCALE=zh-CN- XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_URL=http://elasticsearch:9200command: - bash- -c- |# 增加启动等待机制echo "等待Elasticsearch完全就绪..."while ! curl -sS http://elasticsearch:9200/_cluster/health | grep -qE '"status":"(green|yellow)"'; doecho "Elasticsearch未就绪,10秒后重试..."sleep 10doneecho "启动Kibana..."exec /usr/local/bin/kibana-dockernetworks:- skywalking-netoap:image: www.ecnfo.com:1443/proxy/apache/skywalking-oap-server:9.4.0container_name: oapdepends_on:elasticsearch:condition: service_healthy  # 等待ES健康检查通过environment:- SW_STORAGE=elasticsearch- SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200- TZ=Asia/Shanghai- JAVA_OPTS=-Xms2g -Xmx2g# 增加连接超时设置- SW_STORAGE_ES_HTTP_REST_CONNECTION_TIMEOUT=30000- SW_STORAGE_ES_QUERY_TIMEOUT=60ports:- 11800:11800- 12800:12800networks:- skywalking-net
http://www.lqws.cn/news/463375.html

相关文章:

  • Laravel 项目中图片上传后无法访问的问题
  • 进程间通信——管道
  • 【Qt开发】网络运用
  • “氢键本征型材料 + 柔性电容应变片”方案分析
  • NW849NX721美光固态闪存NX745NX751
  • C++中的指针与引用
  • ProtoBuf:proto3 语法详解
  • 三甲医院AI医疗样本数据集分类与收集全流程节点分析(下)
  • 【appium】2.初始连接脚本配置
  • React扩展知识点
  • 使用Node.js开发服务端接口
  • 【赵渝强老师】使用mysqldump备份MySQL
  • 燕山大学多核程序设计实验(25最新版)
  • 数据分析核心指标体系:从求和、计数到比较的全维度计算方法
  • 一站式了解责任链模式
  • Qt实战:自定义二级选项框 | 附完整源码
  • 【Linux第四章】gcc、makefile、git、GDB
  • 【日志系统-时间戳】
  • 告别线程爆炸:我如何用 Spring WebFlux 构建一个端到端响应式应用
  • ad24智能pdf输出的装配图没有四个边角那里的圆孔
  • 面试题-ts中的typeof
  • 读者写者问题与读写锁自旋锁
  • OpenAI与微软的未来合作之路:充满挑战的AI竞赛与共赢
  • STM32F103C8T6 学习笔记摘要(二)
  • Knife4j 使用详解
  • (详细介绍)线性代数中的零空间(Null Space)
  • GitHub Copilot快捷键
  • JVM(8)——详解分代收集算法
  • linux生产环境下根据关键字搜索指定日志文件命令
  • Android多进程数据共享:SharedPreferences替代方案详解