微服务: sleuth和zipkin的用处与zipkin安装使用(下)

news/2025/2/16 5:29:58/

目录

0. 上篇传送门:

1. 前言简介

mq安装传送门: 微服务: 01-rabbitmq的应用场景及安装(docker) 

1.1 Sleuth是一款分布式跟踪解决方案。

1.2 Zipkin是一个开源的分布式跟踪系统。

2. zipkin安装方式

2.1 windows下安装zipkin: 

2.1.0 下载jar包位置 

2.1.1 下载后,找到文件路径 启动

2.1.2 设置启动参数

->01 使用默认 / 的

 ->02 使用自定义的 virtual-host

 2.1.3 参数解释

->对应 2.1.2->01 参数解释

ps:  指定了上面参数 下面的参数就无法使用 virtual-host指定也不会生效

->对应 2.1.2->02 参数解释

 2.1.4 浏览器查看启动效果

2.2 docker安装zipkin: 

2.2.1 拉取zipkin镜像

2.2.2 制作最简易镜像试试效果

2.2.3 删除并创建新的镜像接入rabbitmq

2.2.4 删除并创建带mq+mysql的镜像

2.2.5 删除并创建带mq+es的镜像

3. 链路测试, 看最终效果

3.1 查看痕迹

3.2 查看线路图(依赖图示)


0. 上篇传送门:

springcloud配置并使用sleuth和mq

1. 前言简介

sleuth和zipkin是两个分布式跟踪工具,在分布式系统中起到了跟踪、监控和调试的作用。 

本文使用sleuth 发出消息给mq 然后zipkin接收并分析数据 

一般都会抽样检查 10%进入zipkin进行分析

spring:sleuth:sampler:probability: 0.1

mq安装传送门: 微服务: 01-rabbitmq的应用场景及安装(docker) 

1.1 Sleuth是一款分布式跟踪解决方案。

它可以在分布式系统中进行跟踪信息的收集,生成一条分布式请求链路信息,用来追踪请求的调用过程和执行时间等信息。Sleuth可以帮助开发者快速定位请求调用过程中出现的问题,提高系统的可调试性和可维护性。

1.2 Zipkin是一个开源的分布式跟踪系统。

它提供了一个友好的Web界面,可以用来展示分布式请求链路的信息,并提供查询和过滤功能。Zipkin支持多种后端存储,如MySQL、Cassandra、Elasticsearch等。通过Zipkin,开发者可以快速定位系统中出现的性能问题和异常情况。

2. zipkin安装方式

2.1 windows下安装zipkin: 

2.1.0 下载jar包位置 

  • GitHub - openzipkin/zipkin:

2.1.1 下载后,找到文件路径 启动

 2.1.2 设置启动参数

[没有配置持久化操作] 

->01 使用默认 / 的

java -jar zipkin-server-2.24.2-exec.jar --zipkin.collector.rabbitmq.uri=amqp://pzy:pzy@ip:5672

 ->02 使用自定义的 virtual-host

java -jar zipkin-server-2.24.2-exec.jar --zipkin.collector.rabbitmq.addresses=ip:5672  --zipkin.collector.rabbitmq.username=pzy --zipkin.collector.rabbitmq.password=pzy --zipkin.collector.rabbitmq.virtual-host=pingzhuyan 

 2.1.3 参数解释

->对应 2.1.2->01 参数解释

tmq.concurrencyRABBIT_CONCURRENCY并发消费者数量,默认为 1
zipkin.collector.rabbitmq.connection-timeoutRABBIT_CONNECTION_TIMEOUT建立连接时的超时时间,默认为 60000 毫秒,即 1 分钟
zipkin.collector.rabbitmq.queueRABBIT_QUEUE从中获取 span 信息的队列,默认为 zipkin
zipkin.collector.rabbitmq.uriRABBIT_URI符合 RabbitMQ URI 规范 的 URI,例如 amqp://user:pass@host:10000/vhost

ps:  指定了上面参数 下面的参数就无法使用 virtual-host指定也不会生效

->对应 2.1.2->02 参数解释

zipkin.collector.rabbitmq.addressesRABBIT_ADDRESSES用逗号分隔的 RabbitMQ 地址列表,例如 localhost:5672,localhost:5673
zipkin.collector.rabbitmq.passwordRABBIT_PASSWORD连接到 RabbitMQ 时使用的密码,默认为 guest
zipkin.collector.rabbitmq.usernameRABBIT_USER连接到 RabbitMQ 时使用的用户名,默认为 guest
zipkin.collector.rabbitmq.virtual-hostRABBIT_VIRTUAL_HOST使用的 RabbitMQ virtual host,默认为 /
zipkin.collector.rabbitmq.use-sslRABBIT_USE_SSL设置为 true 则用 SSL 的方式与 RabbitMQ 建立链接

 2.1.4 浏览器查看启动效果

搜索: http://localhost:9411

2.2 docker安装zipkin: 

[很抱歉,持久化 mysql8版本2.12可以使用 但是2.24版本没有找到好的解决方法]

如果是 mysql5版本的 可以使用mysql持久化

搜索的关键词: docker 拉取zipkin 连接 mysql8  报错  不支持

官方地址: https://hub.docker.com/r/openzipkin/zipkin/tags

2.2.1 拉取zipkin镜像

docker pull openzipkin/zipkin:2.24

2.2.2 制作最简易镜像试试效果

docker run --name zipkin \
-p 9411:9411 \
--restart=always \
-d openzipkin/zipkin:2.24

2.2.3 删除并创建新的镜像接入rabbitmq

docker run --name zipkin \
-p 9411:9411 \
--restart=always \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
-e COLLECTOR_RABBITMQ_ENABLED=true \
-e RABBIT_ADDRESSES=ip:5672  \
-e RABBIT_USER=pzy  \
-e RABBIT_PASSWORD=pzy \
-e RABBIT_VIRTUAL_HOST=pingzhuyan  \
-d openzipkin/zipkin:2.24

2.2.4 删除并创建带mq+mysql的镜像

[高版本用了就会报错, 暂无解决办法] 用es或降版本,直接改mysql都不算

docker run --name zipkin \
-p 9411:9411 \
--restart=always \
-e TZ='Asia/Shanghai' \
-e LANG="en_US.UTF-8" \
-e COLLECTOR_RABBITMQ_ENABLED=true \
-e RABBIT_ADDRESSES=ip:5672  \
-e RABBIT_USER=pzy  \
-e RABBIT_PASSWORD=pzy\
-e RABBIT_VIRTUAL_HOST=pingzhuyan  \
-e STORAGE_TYPE=mysql \
-e MYSQL_JDBC_URL=jdbc:mysql://*:3306/zipkin_config \
-e MYSQL_USER=root \
-e MYSQL_PASS=* \
-d openzipkin/zipkin:2.24

2.2.5 删除并创建带mq+es的镜像

先引用一下别人文章, 一篇篇写 慢慢加入传送门

引用一下别人文章【zipkin】持久化到es_zipkin配置es

3. 链路测试, 看最终效果

3.1 查看痕迹

3.2 查看线路图(依赖图示)


总结 mysql8 与zipkin 使用有问题, 看看有没有其他解决方案


http://www.ppmy.cn/news/603063.html

相关文章

计算一个数的 N 次方的多种解法

1. 问题 实现 pow(x, n) &#xff0c;即计算 x 的 n 次幂函数&#xff08;即&#xff0c;x^n &#xff09;。其中&#xff1a; -100.0 < x < 100.0 -2^31 < n < 2 ^31-1 -10^4 < x ^n < 10 ^ 4 2. 思路 方法一 方法二 方法三 使用折半计算&#xff0c;每次…

如何不使用循环输出 1 到 100 和 不使用 * 实现两数相乘【递归实现】

1. 问题 实现一个函数&#xff0c;要求再不使用循环的前提下输出 1 ~ 100 2. 思路 很多时候循环可以使用递归来实现&#xff0c;所以只要设置好递归的截止条件就可以。 3. 实现 #include <iostream>void output(int n) {if (n < 100){std::cout << n <<…

只使用 ++ 操作符实现加减乘除运算

1. 问题分析 加法操作 要实现 ab 的基本思路就是对 a 执行 b 次 操作即可。减法操作 要实现 a-b 的基本思路就是不断地对 b 执行 n 次 操作&#xff0c;直到等于 a 为止&#xff0c;记录这个过程中的操作次数。乘法操作 要实现 a*b 的基本思路就是对 a 执行 b 次相加就能得到…

经典排序算法(冒泡排序、选择排序、插入排序)

1. 冒泡排序 1.1 算法步骤 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。这步做完后&#xff0c;最后的元素会是最大的数。针对所有的元素重复以上的步骤&#xff0c;除了最后一…

Docker 入门系列(8)— 免 sudo 使用 docker 命令、进入未启动的容器

1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker将用户加入该 group 内 sudo gpasswd -a ${USER} docker重启 docker 服务 sudo service docker restart切换当前会话到新 group 或者重启 X 会话 newgrp - docker注意&#xff1a;最…

RabbitMQ 入门系列(12)— 交换器分类(direct、fanout、topic)

RabbitMQ的 Exchange&#xff08;交换器&#xff09;分为四类&#xff1a; direct&#xff08;默认&#xff09;headersfanouttopic 其中 headers 交换器允许你匹配 AMQP 消息的 header 而非路由键&#xff0c;除此之外 headers 交换器和 direct 交换器完全一致&#xff0c;但…

libavcodec-ffmpeg.so.56 cannot open shared object file

1. 问题现象 ImportError: libavcodec-ffmpeg.so.56: cannot open shared object file: No such file or directory2. 解决方法 sudo apt-get install libavcodec-dev sudo apt-get install libavformat-dev sudo apt-get install libswscale-dev

查找数组中唯一重复的元素和查找数组中丢失的数(哈希法和异或法)

1. 问题 假设数组元素为分别为 1-N&#xff0c;一共 N1 个&#xff0c;其中只有一个元素重复出现&#xff0c;其它元素只出现一个&#xff0c;找出这个重复的元素 2. 思路 2.1 使用 Hash 方法 将出现的元素依次放到一个 hash 表中&#xff0c;每个元素值作为 hash 的 key &am…