链路追踪Zipkin的使用

微服务sleuth+zipkin——链路追踪 SpringCloud Sleuth主要功能就是在分布式系统中提供追踪解决方案。它大量借用了Google Dapper的设计, 先来了解一下Sleuth中的术语和相关概念。 阅读详情

简介

Zipkin 是一个分布式链路追踪系统。它有助于收集解决服务架构中的延迟问题所需的时间数据,用于帮助我们定位问题有着很不错的效果,Zipkin 分为服务端和客户端,服务端提供了一个 UI 监控界面,客户端指的每个服务
Zipkin官网

安装运行

1.官网提供了三种运行方式,分别是docker、jar以及源码运行。
(1)docker运行

docker run -d -p 9411:9411 openzipkin/zipkin

(2) jar可执行包运行

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar >> out.log &

(3) jar可执行包运行

# get the latest source
git clone https://github.com/openzipkin/zipkin
cd zipkin
# Build the server and also make its dependencies
./mvnw -DskipTests --also-make -pl zipkin-server clean install
# Run the server
java -jar ./zipkin-server/target/zipkin-server-*exec.jar

注:官方推荐docker,个人也推荐,因为简单方便,以下例子以docker演示

docker运行Zipkin

1.拉取镜像

#拉取指定版本
docker pull openzipkin/zipkin:2.21.7
#拉取最新版本
docker pull openzipkin/zipkin
#查看镜像
docker images

在这里插入图片描述

2.启动

#--restart=always表示docker启动后自行启动
docker run -d --restart=always -p 9411:9411 openzipkin/zipkin

3.访问Zipkin页面http://服务器ip:9411/,本地就是127.0.0.1
在这里插入图片描述
访问页面没问题,表示Zipkin服务端启动完成,接下来创建几个微服务测试一下

搭建微服务

在这里插入图片描述
1.本次测试使用的SpringCloud进行测试,feign-client服务pom如下:

 <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>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
        <!-- 开启监控中心-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- 使用Hystrix dashboard 监控熔断器状态,配合上面actuator使用 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <!-- feign自带的hystrix并不是启动依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
        <!-- 引入eureka 客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

        <!-- 被zipkin服务追踪的启动依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>


    </dependencies>

feign-client服务配置文件:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8762
spring:
  application:
    name: feign-client
  zipkin:
    base-url: http://192.168.32.193:9411
  sleuth:
    sampler:
      probability: 1.0
feign:
  hystrix:
    enabled: true
  httpclient:
    connection-timeout: 12000
    connection-timer-repeat: 12000
  client:
    config:
      default:
        connectTimeout: 12000
        readTimeOut: 12000

2.user-service服务pom

 <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

        <!-- 被zipkin服务追踪的启动依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

        <!-- web应用 -->
        <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>

user-service服务配置文件:

server:
  port: 8763
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: user-service
  sleuth:
    sampler:
      probability: 1.0
  zipkin:
    base-url: http://192.168.32.193:9411

注:有人可能好奇为什么两个服务的pom和配置文件有所差别,这里主要是由feign-client服务调用user-service服务,为了测试效果,我在user-service服务的接口里加了延时,如果没有feign相关的配置是会报错的。官网服务可有可无。
3.编写测试类启动服务

@RestController
@RequestMapping("/user")
public class UserController {


    @Autowired
    private UserService userService;

    @GetMapping("/hi")
    public String hi(@RequestParam("name") String name){
        return userService.sayHi(name);
    }
}

@Service
public class UserService {
    @Autowired
    private UserFeignClient userFeignClient;

    public String sayHi(String name){
        return userFeignClient.sayHi(name);
    }
}

4.测试
启动服务访问http://localhost:5000/feign-client/user/hi?name=“ibai”
在这里插入图片描述
服务访问成功,可以多刷新几次,再次回到Zipkin页面查看
在这里插入图片描述
根据serviceName查询时默认带出了我们的微服务名称。同样在依赖哪里也能看到我们的服务之间的调用关系
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
很直观的告诉我们整个请求的周期,以及耗时。
把user-service服务停掉再请求
在这里插入图片描述
页面请求报错,看一下链路信息在这里插入图片描述
请求失败的连接显示红色,并且详情里面告诉你报错类型在这里插入图片描述

Zipkin持久化

持久化方案

1…上述启动命令存在问题,当docker重启,链路数据会丢失,因为它的数据是在服务端内存中存储,官方提供有两种持久化方式,分别是mysql和es。

mysql持久化

1.持久化的数据库必须得是5.7,mysql8.0版本启动时会报错,经查询说是必须得是5.7,由于我已经安装了8.0版本,所以端口改成了3309(虚拟机映射端口),

docker run --name zipkin  -d --restart=always -p 9411:9411 -e STORAGE_TYPE=mysql -e MYSQL_HOST=172.17.0.1 -e MYSQL_TCP_PORT=3309 -e MYSQL_DB=zipkin -e MYSQL_USER=root -e MYSQL_PASS=123456 openzipkin/zipkin

在这里插入图片描述
MYSQL_HOST是数据库服务ip。由于我的数据库和Zipkin都使用docker启动。这里的ip可以是你虚拟机的ip,但是虚拟机重启后连接网络ip会变,在你没有配置固定ip时,你可以使用ip addr查询你的虚拟机ip地址。
在这里插入图片描述
这个地址经测试,无论怎么重启,怎么更改热点连接均不会变,具体什么ip什么原理还没查询,有知道的同学可以留言解答一下。
2.新建数据库表

--
-- Copyright 2015-2019 The OpenZipkin Authors
--
-- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
-- in compliance with the License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software distributed under the License
-- is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-- or implied. See the License for the specific language governing permissions and limitations under
-- the License.
--

CREATE TABLE IF NOT EXISTS zipkin_spans (
  `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
  `trace_id` BIGINT NOT NULL,
  `id` BIGINT NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `remote_service_name` VARCHAR(255),
  `parent_id` BIGINT,
  `debug` BIT(1),
  `start_ts` BIGINT COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL',
  `duration` BIGINT COMMENT 'Span.duration(): micros used for minDuration and maxDuration query',
  PRIMARY KEY (`trace_id_high`, `trace_id`, `id`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTracesByIds';
ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT 'for getTraces and getSpanNames';
ALTER TABLE zipkin_spans ADD INDEX(`remote_service_name`) COMMENT 'for getTraces and getRemoteServiceNames';
ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT 'for getTraces ordering and range';

CREATE TABLE IF NOT EXISTS zipkin_annotations (
  `trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
  `trace_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',
  `span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',
  `a_key` VARCHAR(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',
  `a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',
  `a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',
  `a_timestamp` BIGINT COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',
  `endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is null',
  `endpoint_ipv6` BINARY(16) COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',
  `endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint is null',
  `endpoint_service_name` VARCHAR(255) COMMENT 'Null when Binary/Annotation.endpoint is null'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT 'Ignore insert on duplicate';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`, `span_id`) COMMENT 'for joining with zipkin_spans';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTraces/ByIds';
ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames';
ALTER TABLE zipkin_annotations ADD INDEX(`a_type`) COMMENT 'for getTraces and autocomplete values';
ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT 'for getTraces and autocomplete values';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, `span_id`, `a_key`) COMMENT 'for dependencies job';

CREATE TABLE IF NOT EXISTS zipkin_dependencies (
  `day` DATE NOT NULL,
  `parent` VARCHAR(255) NOT NULL,
  `child` VARCHAR(255) NOT NULL,
  `call_count` BIGINT,
  `error_count` BIGINT,
  PRIMARY KEY (`day`, `parent`, `child`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

sql来源在源码中有,感兴趣的可以去看一下源码
github地址
在这里插入图片描述
再次刷新请求路径
在这里插入图片描述
在这里插入图片描述
重启Zipkin服务,再次访问页面,数据依然还在。

docker restart d805ff90461b

在这里插入图片描述

总结

1.以上是使用微服务和docker进行的测试。有不足之处欢迎大家指点。

SpringBoot集成ZipKin实现链路跟踪 ​ 当我们的服务器成千上万,当我们的模块上万成千,当我们的调用链路复杂如蜘蛛网时,我们突然发现一个小小的性能问题却不能快速定位到点!千万不要以为自己是神,当年那个觉得ELK日志分析系统多余的程序员已经被老板祭天!​ 废话有点多,今天我们要做的一件事非常简单,如何在一个多层调用的接口里快速查看它们的网络拓扑图并得到监控数据! 阅读详情

相关推荐

Zipkin介绍与在SpringCloud alibaba中的使用

官网地址:https://zipkin.io/Zipkin是一个分布式跟踪系统,它能聚集来自各个异构系统的实时监控数据。类似的分布式跟踪系统还有其他比较成熟的实现,例如:Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东的Hydra、新浪的Watchman,美团点评的CAT,skywalking等。

heouheou的博客 1193

ZipKin原理学习--ZipKin入门介绍

ZipKin入门介绍 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据。分布式跟踪系统还有其他比较成熟的实现,例如:Naver的Pinpoint、Apache的HTrace、阿里的鹰眼Tracing、京东...

井底之蛙 5万+

微服务链路追踪之zipkin搭建

前言 微服务治理方案中,链路追踪是必修课,SpringCloud的组件其实使用很简单,生产环境中真正令人头疼的往往是软件维护,接口在微服务间的调用究竟哪个环节出现了问题,哪个环节耗时较长,这都是项目上线后一定会遇到的问题,为了解决这些问题链路追踪便应运而生了。 主流方案 1)、SkyWalking:这应该是目前最主流的方案了,我所在公司今年的新项目就开始使用这个,效果确实很显著,功能强大,最重要还是国产的,后面不用看了我们支持国产吧!开个玩笑哈哈,其实这个框架也有缺点,就是稍微有点重,比较适合稍大一点

JavaMonsterr的博客 8504

Zipkin 介绍

文章目录一、Zipkin 是什么?二、架构概述三、流程实例四、传输方式五、存储关注 Java有货领取更多资料 一、Zipkin 是什么? Zipkin是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。 如果日志文件中有跟踪ID,则可以直接跳至该跟踪ID。否则,您可以基于属性进行查询,例如服务,操作名称,标签和持续时间。将为您总结一些有趣的数据...

杨海吉 8681

Spring Cloud 链路追踪 Sleuth+Zipkin 完整教程

本文全面介绍了Spring Cloud Sleuth与Zipkin的分布式链路追踪技术。主要内容包括:链路追踪的定义、核心作用和微服务架构中的应用价值;Sleuth和Zipkin的架构原理、核心概念(Trace、Span等)和集成方式;从基础配置到高级功能(采样策略、自定义Span、异步处理等)的详细实现;电商系统实战案例演示;性能优化策略和生产环境最佳实践;常见问题排查方法。文章强调该技术对提升微服务可观测性、加速故障定位的重要作用,并提供了从入门到精通的系统学习路径,为构建稳定的分布式系统提供了完整解决

weixin_51040479的博客 1285

springcloud使用zipkin实现链路追踪与监控

微服务架构是一种分布式架构,微服务系统按照业务划分服务单元,一个微服务往往会有很多个服务单元,一个请求往往会有很多个单元参与,一旦请求出现异常,想要去定位问题点真心不容易,因此需要有个东西去跟踪请求链路,记录一个请求都调用了哪些服务单元,调用顺序是怎么样的以及在各个服务单元处理的时间长短。常见的服务链路追踪组件有google的dapper、twitter的zipkin、阿里的鹰眼等,它们都是出众...

congge 1万+

微服务—链路追踪(Sleuth+Zipkin)

这里写自定义目录标题1、链路追踪介绍2、为什么需要链路追踪?2.1、那该如何解决呢?2.2、常见的链路追踪技术有下面这些:3、Sleuth3.1、Sleuth介绍3.2、相关术语3.3、Sleuth入门4、Zipkin4.1、ZipKin介绍4.2、ZipKin服务端安装4.3、Zipkin客户端集成4.4、ZipKin数据持久化4.4.1使用mysql实现数据持久化 1、链路追踪介绍 在大型系统的微服务化构建中,一个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种

shi_AXing_a的博客 1万+

【微服务】springcloud集成sleuth与zipkin实现链路追踪

springcloud集成sleuth与zipkin实现链路追踪

congge 8683

zipkin链路追踪详解

服务链路追踪(Spring Cloud Sleuth) sleuth:英 [slu:θ] 美 [sluθ] n.足迹,警犬,侦探vi.做侦探   微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微...

fsy9595887的博客 5万+

FMEA-MSR步骤三:功能分析

目的 FMEA-MSR功能分析的主要目标: ● 功能及各功能之间的关系的可视化 ● 功能树/网络或等效功能矩阵参数图(P图) ● 顾客(外部和内部)功能与相关要求的关联 ● 要求或特性与功能的关联 ● 工程团队(系统、安全和组件)之间的协作 ● 失效分析步骤的基础 (点击链接进入官网领取软件试用) 在监视及系统响应的补充FMEA中,对失效探测和失效响应的监视视为其具有的功能。硬件和软件功能可能包括监视控制状态的功能。 故障/失效的监视和探测功能可能包括超出范围的探测、循环冗余校验、真实性检查和序列计数器检查

Infomass的博客 2389

Spring Boot 链路追踪 Zipkin 入门

1. 概述 如果胖友还没了解过分布式链路追踪Zipkin,建议先阅读下艿艿写的《Zipkin 极简入门》文章。虽然这篇文章标题是安装部署,实际可以理解成《一文带你快速入门 Zipkin》,哈哈哈。 可能会有胖友会有疑惑,Spring Boot 不是一个单体应用么,为什么可以使用 Zipkin 进行分布式链路追踪呢?其实这里有一个误区!即使是一个 Spring Boot 单体应用,我们一般可能会和以下服务打交道: 关系数据库,例如说 MySQL、Oracle、SQLServer、PostgreSQ...

weixin_42073629的博客 3136

医疗AI Agent实战:从零搭建一个能看病的智能助手(附完整代码)

本文详细介绍了如何从零搭建一个医疗AI Agent智能助手,涵盖核心架构设计、症状推理引擎开发、安全与合规实现以及系统集成等关键环节。通过完整的代码示例和实战案例,帮助开发者快速构建具备医疗咨询能力的智能Agent,提升医疗服务的效率和质量。

ss78901的博客 465

使用Zipkin给项目搭建链路追踪功能

使用Zipkin搭建蘑菇博客链路追踪 前言 Zipkin是一个开源的分布式的链路追踪系统,每个微服务都会向zipkin报告计时数据,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。 如图,在复杂的调用链路中假设存在一条调用链路响应缓慢,如何定位其中延迟高的服务呢? 日志: 通过分析调用链路上的每个服务日志得到结果 zipkin:使用zipkin的web UI可以一眼看出延迟高的服务 如图...

qq_17831715的博客 1004

DeepSeek跨会话协作指南:让AI成为你的「第二大脑」

通过DeepSeek的跨会话协作系统,用户实测工作效率提升63%。

紫夜若涵的博客 1472

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的水果识别系统(Python+PySide6界面+训练代码)

本文详细介绍了基于YOLO系列目标检测算法(包括YOLOv5、YOLOv6、YOLOv7和YOLOv8)的水果识别系统的设计与实现。系统采用Python语言开发,结合PySide6构建用户界面,实现了从数据准备、模型训练到部署应用的全流程。本文将提供完整的代码实现、详细的训练过程分析以及性能对比实验,并给出推荐的数据集资源。该系统可以准确识别多种水果类型,为智能农业、自动售货、食品加工等领域提供技术支持。

YOLO 564

Zipkin链路追踪与监控

Zipkin链路追踪与监控 文章目录1. 分布式链路监控与追踪产生背景2. zipkin框架介绍3. zipkin部署3.1 docker3.2 jar包运行3.3 源码编译4. 项目构建4.1 zipkinp-server4.2 zipkin-comsumber4.3 zipkin-provider4.4 启动部署 1. 分布式链路监控与追踪产生背景 在微服务系统中,随着业务的发展,系统会变得越来越大,那么各个服务之间的调用关系也就变得越来越复杂。一个 HTTP 请求会调用多个不同的微服务来处理返回.

Mr.Kong 1239

23、电生理与CSD分析:探索大脑活动的前沿技术

本文介绍了电生理与电流源密度(CSD)分析在探索大脑活动中的前沿应用。从电生理技术的发展现状,到局部场电位(LFPs)的起源与解释,重点阐述了CSD分析的原理、实验方法及其在绘制皮层兴奋流、解析突触输入和研究自发振荡中的广泛应用。文章还总结了该领域的优势与挑战,并展望了技术改进、多模态融合、数据分析创新及临床拓展的未来方向,展示了这些技术在揭示大脑功能机制中的关键作用。

Apple的专栏 119

spring cloud整合Sleuth的链路追踪zipkin

spring cloud分布式整合zipkin的链路跟踪 为什么使用zipkin?

王德昌的博客 2万+

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+

【ComfyUI】Wan2.2 Animate 背景保留动作迁移视频生成

本文介绍了一个基于ComfyUI的高精度视频生成工作流"Wan2.2 Animate",该系统融合动作捕捉、图像拼接和LoRA加权等技术,能自动识别人脸并完成精准动作迁移,同时保持背景稳定。工作流采用模块化设计,包含输入提取、图像融合、模型加载等关键节点,核心模型Wan2.2-Animate-14B支持fp8精度与BlockSwap控制。流程分为图像输入、动作提取、多图合成等五个阶段,通过文本提示编码器和图像语义编码器实现语义驱动的动作生成,最终输出高质量视频,适用于虚拟形象驱动和

Mr数据杨 2259

链路追踪zipkin

链路追踪主要用于分布式系统,服务出现级联调用,能够提供调用的时间且能结算出网络延迟时间——>将服务还原成链路链路数据模型有三个点一个完整的链路,用的是我们的雪花算法一次调用完整的过程(开始时间和结束时间)父节点id。

weixin_57128596的博客 1131

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Zipkin+Sleuth 链路追踪

本篇主要内容 这篇主要是理论 + 实践相结合。实践部分涉及到如何把链路追踪组件Sleuth+Zipkin加到我的 Spring Cloud 《佳必过》开源项目上。 本篇知识点: 链路追踪基本原理 如何在项目中轻松加入链路追踪中间件 如何使用链路追踪排查问题 一、为什么要用链路追踪? 1.1 因:拆分服务单元 微服务架构其实是一个分布式的架构,按照业务划分成了多个服务单元。 由于服务单元的数量是很多的,有可能几千个,而且业务也会更复杂,如果出现了错误和异常,...

qq_24692021的博客 951

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

zipkin使用_Spring cloud 链路追踪sleuth+zipkin

1.下载zipkin jar OpenZipkin · A distributed tracing systemIf you have Java 8 or higher installed, the quickest way to get started is to fetch the latest release as a self-contained executable jar:curl ...

weixin_39768762的博客 176

ZipKin链路追踪

ZipKin官网 ZipKin链路追踪介绍

junior_programmer的博客 337

微服务SpringCloud链路追踪之Micrometer+Zipkin

SpringCloud+Openfeign远程调用,并用Mircrometer+Zipkin进行链路追踪

XiaoHH的博客 1836
上一篇: Chat2DB的使用教程
下一篇: SpringBoot上传大附件报错java.lang.NegativeArraySizeException
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值