SpringCloud链路追踪实时流量最佳解决方案:Pinpoint分布式链路追踪、链路监控平台详细搭建步骤,SpringBoot/SpringCloud微服务注册到Pinpoint(2022年最新)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: SpringCloud链路追踪实时流量最佳解决方案:Pinpoint分布式链路追踪、链路监控平台详细搭建步骤,SpringBoot/SpringCloud微服务注册到Pinpoint(2022年最新)

@[toc]

前言

Pinpoint 是用 Java 编写的 APM(应用性能管理)工具,用于大规模分布式系统。在 Dapper 之后,Pinpoint 提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。

  • 安装agent是无侵入式的
  • 对性能的影响最小(只增加约3%资源利用率)
  • 服务之间的调用链路图

在这里插入图片描述

  • 单个请求数据链路

在这里插入图片描述

1.下载

pinpoint github地址

  • pinpoint-agent-2.3.3.tar.gz
  • pinpoint-collector-boot-2.3.3.jar
  • pinpoint-web-boot-2.3.3.jar
  • Source code (zip) (解压完 pinpoint\pinpoint-2.3.3\hbase\scripts\hbase-create.hbase)- 初始化hbase脚本

hbase数据库

  • hbase-1.2.6-bin.tar.gz

在这里插入图片描述

2.安装

JDK是必备要求,自行安装

2.1 安装hbase

2.1.1 解压

tar -zxvf hbase-1.2.6-bin.tar.gz

2.1.2 修改配置文件

1.hbase-env.sh

vim hbase-1.2.6/conf/hbase-env.sh
注释46,47行 ,添加javahome配置。
export JAVA_HOME=/usr/local/jdk1.8.0_291
export HBASE_MANAGES_ZK=true
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

在这里插入图片描述


2.hbase-site.xml

vim  hbase-1.2.6/conf/hbase-site.xml
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>file:///xxx/hbase/data</value>
    </property>
</configuration>

在这里插入图片描述


3.启动

启动hbase
 ./bin/start-hbase.sh

在这里插入图片描述
在这里插入图片描述

4.初始化hbase的pinpoint库

cd /hbase-1.2.6/bin 进入该目录,hbase shell是命令不是可执行脚本
 ./hbase shell /usr/local/pinpoint/hbase-create.hbase

在这里插入图片描述


初始化完成

2.2 部署pinpoint-collector

2.2.1 创建日志文件夹

在这里插入图片描述

2.2.2 启动

nohup java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-collector-boot-2.3.3.jar > log/collector.log 2>&1 &

在这里插入图片描述


2.3 部署pinpoint-web-boot

nohup java -jar -Dpinpoint.zookeeper.address=127.0.0.1 pinpoint-web-boot-2.3.3.jar > log/web.log 2>&1 &

在这里插入图片描述


2.4 pinpoint-agent配置(无需运行,后续将在微服务启动时引用)

2.4.1 解压

tar -zxvf pinpoint-agent-2.3.3.tar.gz
#进入该文件夹修改配置文件
cd pinpoint-agent-2.3.3/profiles/release/
vim pinpoint.config 
将这两个配置改为部署collector的ip,我的都在一台机器直接127.0.0.1就行

在这里插入图片描述


找到这一行

在这里插入图片描述

改为
profiler.sampling.rate=1

3 运行一个springboot

3.1 linux

java -javaagent:/usr/local/pinpoint/pinpoint-agent-2.3.3/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=xdclass-redis -Dpinpoint.applicationName=xdclass-redis -jar xdclass-redis-0.0.1-SNAPSHOT.jar

在这里插入图片描述

3.2 windows

1.在win环境下解压pinpoint-agent-2.3.3

修改配置文件
pinpoint-agent-2.3.3/profiles/release/pinpoint.config

在这里插入图片描述
在这里插入图片描述

2.idea添加参数启动springboot

-javaagent:E:\pinpoint\pinpoint-agent-2.3.3\pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=UserApplication -Dpinpoint.applicationName=UserApplication

在这里插入图片描述


启动成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 k8s环境

如果是在k8s环境下部署
需要每个物理机拷贝一份pinpoint-agent
相关实践学习
基于OpenTelemetry构建全链路追踪与监控
本实验将带领您快速上手可观测链路OpenTelemetry版,包括部署并接入多语言应用、体验TraceId自动注入至日志以实现调用链与日志的关联查询、以及切换调用链透传协议以满足全链路打通的需求。
分布式链路追踪Skywalking
Skywalking是一个基于分布式跟踪的应用程序性能监控系统,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,提供了一种简便的方式来清晰地观测分布式系统,具有分布式追踪、性能指标分析、应用和服务依赖分析等功能。 分布式追踪系统发展很快,种类繁多,给我们带来很大的方便。但在数据采集过程中,有时需要侵入用户代码,并且不同系统的 API 并不兼容,这就导致了如果希望切换追踪系统,往往会带来较大改动。OpenTracing为了解决不同的分布式追踪系统 API 不兼容的问题,诞生了 OpenTracing 规范。OpenTracing 是一个轻量级的标准化层,它位于应用程序/类库和追踪或日志分析程序之间。Skywalking基于OpenTracing规范开发,具有性能好,支持多语言探针,无侵入性等优势,可以帮助我们准确快速的定位到线上故障和性能瓶颈。 在本套课程中,我们将全面的讲解Skywalking相关的知识。从APM系统、分布式调用链等基础概念的学习加深对Skywalking的理解,从0开始搭建一套完整的Skywalking环境,学会对各类应用进行监控,学习Skywalking常用插件。Skywalking原理章节中,将会对Skywalking使用的agent探针技术进行深度剖析,除此之外还会对OpenTracing规范作整体上的介绍。通过对本套课程的学习,不止能学会如何使用Skywalking,还将对其底层原理和分布式架构有更深的理解。本课程由黑马程序员提供。
相关文章
|
1月前
|
存储 Prometheus Cloud Native
分布式系统架构6:链路追踪
本文深入探讨了分布式系统中的链路追踪理论,涵盖追踪与跨度的概念、追踪系统的模块划分及数据收集的三种方式。链路追踪旨在解决复杂分布式系统中请求流转路径不清晰的问题,帮助快速定位故障和性能瓶颈。文中介绍了基于日志、服务探针和边车代理的数据收集方法,并简述了OpenTracing、OpenCensus和OpenTelemetry等链路追踪协议的发展历程及其特点。通过理解这些概念,可以更好地掌握开源链路追踪框架的使用。
98 41
|
5月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
5月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
64 6
|
1月前
|
Java 关系型数据库 数据库
微服务SpringCloud分布式事务之Seata
SpringCloud+SpringCloudAlibaba的Seata实现分布式事务,步骤超详细,附带视频教程
73 1
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
43 0
|
2月前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
128 3
|
2月前
|
存储 运维 数据可视化
如何为微服务实现分布式日志记录
如何为微服务实现分布式日志记录
136 1
|
4月前
|
消息中间件 存储 负载均衡
微服务与分布式系统设计看这篇就够了!
【10月更文挑战第12天】 在现代软件架构中,微服务和分布式系统设计已经成为构建可扩展、灵活和可靠应用程序的主流方法。本文将深入探讨微服务架构的核心概念、设计原则和挑战,并提供一些关于如何在分布式系统中实现微服务的实用指导。
175 2
|
4月前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?