目录
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.concurrency | RABBIT_CONCURRENCY | 并发消费者数量,默认为 1 |
zipkin.collector.rabbitmq.connection-timeout | RABBIT_CONNECTION_TIMEOUT | 建立连接时的超时时间,默认为 60000 毫秒,即 1 分钟 |
zipkin.collector.rabbitmq.queue | RABBIT_QUEUE | 从中获取 span 信息的队列,默认为 zipkin |
zipkin.collector.rabbitmq.uri | RABBIT_URI | 符合 RabbitMQ URI 规范 的 URI,例如 amqp://user:pass@host:10000/vhost |
ps: 指定了上面参数 下面的参数就无法使用 virtual-host指定也不会生效
->对应 2.1.2->02 参数解释
zipkin.collector.rabbitmq.addresses | RABBIT_ADDRESSES | 用逗号分隔的 RabbitMQ 地址列表,例如 localhost:5672,localhost:5673 |
zipkin.collector.rabbitmq.password | RABBIT_PASSWORD | 连接到 RabbitMQ 时使用的密码,默认为 guest |
zipkin.collector.rabbitmq.username | RABBIT_USER | 连接到 RabbitMQ 时使用的用户名,默认为 guest |
zipkin.collector.rabbitmq.virtual-host | RABBIT_VIRTUAL_HOST | 使用的 RabbitMQ virtual host,默认为 / |
zipkin.collector.rabbitmq.use-ssl | RABBIT_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 使用有问题, 看看有没有其他解决方案