SpringCloud学习笔记(十二)_Zipkin全链路监控

news2024/11/16 7:50:15

Zipkin是SpringCloud官方推荐的一款分布式链路监控的组件,使用它我们可以得知每一个请求所经过的节点以及耗时等信息,并且它对代码无任何侵入,我们先来看一下Zipkin给我们提供的UI界面都是提供了哪些信息。

  1. zipkin首页为我们提供了对于调用链路的搜索查询及展示的功能
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ze9KDnXq-1693123462094)(http://zhixiang.org.cn/2018/11/19/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9AZipkin%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7/1.png)]
  2. 第二个选项卡里提供了历史数据的导入功能
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AetP4aod-1693123462095)(http://zhixiang.org.cn/2018/11/19/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9AZipkin%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7/2.png)]
  3. 第三个选项卡里展示了各个微服务之间的关系
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Orq2hUWm-1693123462095)(http://zhixiang.org.cn/2018/11/19/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9AZipkin%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7/3.png)]
  4. 我们再次回到首页,我们点开一个调用链路之后就会看到此次链路调用的详情
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7UGELxT2-1693123462096)(http://zhixiang.org.cn/2018/11/19/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9AZipkin%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7/4.png)]
  5. 现在我们点开详情中的一个service,可以看到此次调用在这个微服务中的详细信息。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29hZBbBh-1693123462096)(http://zhixiang.org.cn/2018/11/19/%E6%AF%8F%E5%A4%A9%E5%AD%A6%E7%82%B9SpringCloud%EF%BC%88%E5%8D%81%E4%BA%8C%EF%BC%89%EF%BC%9AZipkin%E5%85%A8%E9%93%BE%E8%B7%AF%E7%9B%91%E6%8E%A7/5.png)]

如何使用Zipkin

虽然在SpringBoot2.0以后官方不推荐我们自定义Zipkin服务端,而是使用官方提供的jar包。但是作为开发者来说,如果不能去看一看源码,修改一些自定义的配置的话就好像生命掌握在别人手里一样,哪天碰到一个莫名奇妙的bug可就不开心了。所以本例中使用zipkin最新2.11.8release版本来构建一个服务端

1. 创建一个微服务 cloud-demo-zipkin-server
1. pom.xml
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  

|

<dependency>  
            <groupId>io.zipkin.java</groupId>  
            <artifactId>zipkin-server</artifactId>  
            <version>2.11.8</version>  
        </dependency>  
        <dependency>  
            <groupId>io.zipkin.java</groupId>  
            <artifactId>zipkin-autoconfigure-ui</artifactId>  
            <version>2.11.8</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>  
        </dependency>  

—|—

2. yml
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  

|

server:  
  port: 9411  
spring:  
  application:  
    name: zipkin-server  
  
management:  
  metrics:  
    web:  
      server:  
        auto-time-requests: false  
eureka:  
  client:  
    serviceUrl:  
      defaultZone: http://localhost:8761/eureka/  
  instance:  
    prefer-ip-address: true  

—|—

3. 启动注解
1  
2  
3  

|

@EnableEurekaClient  
@EnableZipkinServer  
@SpringBootApplication  

—|—

需要注意的是EnableZipkinServer注解是zipkin2.server.internal包下的。

2. 创建一个微服务 cloud-demo-zipkin-server

改造一下我们原先的两个微服务:cloud-demo-consumer-feign-hystrix,cloud-demo-provider

首先为它们都加上zipkin客户端的依赖

1  
2  
3  
4  
5  
6  
7  
8  

|

<dependency>  
	<groupId>org.springframework.cloud</groupId>  
	<artifactId>spring-cloud-starter-sleuth</artifactId>  
</dependency>  
<dependency>  
	<groupId>org.springframework.cloud</groupId>  
	<artifactId>spring-cloud-starter-zipkin</artifactId>  
</dependency>  

—|—

yml中指定zipkin-server的url,并且指定日志发送方式为web

1  
2  
3  
4  
5  

|

spring:  
  zipkin:  
    base-url: http://localhost:19411  
    sender:  
      type: web  

—|—

3. 查看结果

此时我们所有的准备工作已经做好了,我们启动Eureka、zipkin、cloud-demo-consumer-feign-hystrix、cloud-demo-provider几个微服务,调用几次cloud-demo-consumer-feign-hystrix的user/getUser接口。然后访问http://localhost:9411应该就可以看到zipkin的UI界面。

这个时候可能有的童鞋看到有数据,有的没有数据,这个不是你的配置错了,而是因为zipkin客户端默认收集10%的数据,你可以使用下方的配置更改zipkin的采样频率。

1  
2  
3  
4  

|

spring:  
  sleuth:  
    sampler:  
      probability: 1.0  

—|—

GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代码所在模块:cloud-demo-zipkin-server,cloud-demo-consumer-feign-hystrix,cloud-demo-provider

如果对您有所帮助,请记得帮忙点一个star哦

本文出自http://zhixiang.org.cn,转载请保留。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/935439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript最牛逼代码语句

下面这段代码是JavaScript中最牛逼的表达式 ([][[]] [])[!![]] ([] {})[!![] !![]]为什么说这个表达式是最牛逼的表达式呢?我们把它放浏览器内执行一下 输出如下,怎么样,牛不牛逼 那它为什么会输出这么一个玩意儿呢,我们先把它拆解一下 ([][[]] [])[!![]] ([] {})[!!…

【python使用 Pillow 库】缩小|放大图片

当我们处理图像时&#xff0c;有时候需要调整图像的大小以适应特定的需求。本文将介绍如何使用 Python 的 PIL 库&#xff08;Pillow&#xff09;来调整图像的大小&#xff0c;并保存调整后的图像。 环境准备 在开始之前&#xff0c;我们需要安装 Pillow 库。可以使用以下命令…

文心一言 VS 讯飞星火 VS chatgpt (82)-- 算法导论8.1 1题

一、如果用go语言&#xff0c;在一棵比较排序算法的决策树中&#xff0c;一个叶结点可能的最小深度是多少? 文心一言&#xff1a; 在一个排序决策树&#xff08;如二叉搜索树&#xff09;中&#xff0c;每个叶节点的最小深度等于输入数据中最大元素与最小元素之间的位距离。…

(动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

❓剑指 Offer 48. 最长不含重复字符的子字符串 难度&#xff1a;中等 请从字符串中找出一个最长的不包含重复字符的子字符串&#xff0c;计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为…

Java“牵手”天猫淘口令转换API接口数据,天猫API接口申请指南

天猫平台商品淘口令接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、商品快递费用&#xff0c;宝贝ID&#xff0c;发货地&#xff0c;区域ID&#xff0c;快递费用&#xff0c;月销量、总销量、库存、详情描…

ArrayList集合安全

并发修改异常 java.util.ConcurrentModificationException异常 CopyOnWriteArrayList add() 方法 public boolean add(E e) {final ReentrantLock lock this.lock;lock.lock();try {Object[] elements getArray();int len elements.length;Object[] newElements Arrays.c…

【Acwing285】没有上司的舞会(树形dp)题目笔记

题目描述 题目分析 首先来看状态表示&#xff1a; f[u][1]&#xff1a;所有从以u为根的子树中选择&#xff0c;并且不选u这个点的情况之下的最大指数 f[u][0]&#xff1a;所有从以u为根的子树中选择&#xff0c;并且选择u这个点的情况之下的最大指数 然后看状态计算&#x…

3 自制一个集群分发脚本

1. 随便取了一个名字&#xff1a;xsync 2. 在一个配置环境变量的目录下&#xff0c;我是放在了/opt/software下&#xff0c;这个路径我是配置了环境变量的。 3. 编辑脚本&#xff1a;vim xsync #!/bin/bash#1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Enough Arguement!…

【淘宝/天猫】获得淘宝商品详情sku(PC端APP端),关键词搜索商品列表,商品分类等

采集商品详情的主要用途包括&#xff1a; 1. 电商平台运营&#xff1a;电商平台需要收集商品的详细信息&#xff0c;包括商品名称、描述、价格、规格、图片等&#xff0c;以便展示给用户进行购买决策。通过采集商品详情&#xff0c;电商平台可以提供丰富的商品信息给用户&…

openGauss学习笔记-52 openGauss 高级特性-LLVM

文章目录 openGauss学习笔记-52 openGauss 高级特性-LLVM52.1 适用场景52.2 非适用场景52.3 其他因素对LLVM性能的影响52.4 LLVM使用建议 openGauss学习笔记-52 openGauss 高级特性-LLVM openGauss借助LLVM&#xff08;Low Level Virtual Machine&#xff09;提供的库函数&…

语言基础篇1——Python概述,Python是什么?Python能干什么?

概述 简介 Python&#xff0c;计算机高级语言&#xff0c;读作/ˈpaɪθən/&#xff08;英音&#xff09;、/ˈpaɪθɑːn/&#xff08;美音&#xff09;&#xff0c;意为蟒蛇&#xff0c;Python的logo为两条缠绕的蟒蛇 特点 Python以开发效率高而运行效率低著称 应用领域…

Android学习之路(10) Bundle

Bundle的概念理解 Bundle经常出现在以下场合&#xff1a; Activity状态数据的保存与恢复涉及到的两个回调&#xff1a;void onSaveInstanceState (Bundle outState)、void onCreate (Bundle savedInstanceState)Fragment的setArguments方法&#xff1a;void setArguments (Bu…

无可用的防病毒提供方你的设备

今天安装软件时关闭了一下windows的Defender&#xff0c;然后安装后出现下面问题 莫名奇妙我的病毒防护就不能用了 后来请教了老师才知道是安装的软件把我系统设置改了&#xff0c;以后使用一键安装软件要谨慎 解决措施&#xff1a; CMD命令&#xff0c;输入“regedit”&#…

kubernetes/k8s驱逐机制总结篇

概述 k8s的驱逐机制是指在某些场景下&#xff0c;如node节点notReady、node节点压力较大等&#xff0c;将pod从某个node节点驱逐掉&#xff0c;让pod的上层控制器重新创建出新的pod来重新调度到其他node节点。这里也将kube-scheduler的抢占调度纳入到了驱逐的讨论范围内&#…

Kotlin开发笔记:协程基础

Kotlin开发笔记&#xff1a;协程基础 导语 本章内容与书的第十五章相关&#xff0c;主要介绍与协程相关的知识。总的来说&#xff0c;本文将会介绍Kotlin中关于异步编程的内容&#xff0c;主要就是与协程有关。在Kotlin中协程是利用continuations数据结构构建的&#xff0c;用…

【洛谷】P2678 跳石头

原题链接&#xff1a;https://www.luogu.com.cn/problem/P2678 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二分答案。&#xff08;使用二分需要满足两个条件。一个是有界&#xff0c;一个是单调。 这题的题面&#xff1a;使得选手们在比赛过程中…

RV64函数调用流程分析

RV64函数调用流程分析 1 RV64 函数调用实例2 对应代码的分析2.1 main函数及其对应的汇编程序2.1.1 main的C代码实现2.1.2 main函数对应汇编及其分析2.1.3 执行完成之后栈的存放情况 2.2 test_fun_a函数及其对应的汇编程序2.2.1 test_fun_a函数的C实现2.2.2 test_fun_a函数对应汇…

go vet中的那些检测项

go vet 是 Go 语言自带的一个工具&#xff0c;用于分析 Go 代码中的常见错误和潜在问题。它可以检查代码中可能存在的各种问题&#xff0c;例如&#xff1a; 未使用的变量、函数或包 可疑的函数调用 错误的函数签名 程序中的竞态条件 错误的类型转换等 本文意图指令当前go vet所…

单片机IO模拟串口协议

一、前言 嵌入式硬件平台调试中常用的debug方法是看串口打印定位问题&#xff0c;但有时候会遇到单片机没有串口外设或者串口引脚被占用的情况&#xff0c;这时候也可以在代码里操作空闲的IO输出不同个数的脉冲来达到调试的效果&#xff0c;但是要用逻辑分析仪抓线逐个看波形比…

快速了解:Mybatis-Plus

一、Mybatis-Plus介绍 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高 效率而生。 官网&#xff1a;https://mybatis.plus/ 或 https://mp.baomidou.com/ 文档地址&…