一、zipkin服务
1、下载
下载地址:https://github.com/openzipkin/zipkin

2、启动
(1)cmd进到zipkin目录
(2)java -jar zipkin-server-2.24.2-exec.jar

二、微服务集成zipkin
这里演示两个服务:intr服务通过feign调用calculate服务
intr服务和calculate服务都需要以下依赖和配置
1、依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
2、配置
spring:
zipkin:
#zipkin服务所在地址
base-url: http://127.0.0.1:9411/
sender:
# web 默认,通过HTTP方式发送链路追踪信息到Zipkin
# kafka/rabbit 客户端将踪迹日志数据传递到mq进行中转
type: web
#配置采样百分比
sleuth:
sampler:
probability: 1 # 将采样比例设置为 1.0,也就是全部都需要。默认是0.1也就是10%,一般情况下,10%就够用了
3、测试
启动intr和calculate,调intr的接口
查看zipkin界面

SHOW按钮 点进去

三、zipkin使用RabbitMq
1、zipkin启动
启动参数里面需要加上RabbitMq地址,RabbitMq相关参数如下
| Property | Environment Variable | Description |
| zipkin.collector.rabbitmq.concurrency | RABBIT_CONCURRENCY | Number of concurrent consumers. Defaults to 1 |
| zipkin.collector.rabbitmq.connection-timeout | RABBIT_CONNECTION_TIMEOUT | Milliseconds to wait establishing a connection. Defaults to 60000 (1 minute) |
| zipkin.collector.rabbitmq.queue | RABBIT_QUEUE | Queue from which to collect span messages. Defaults to zipkin |
| zipkin.collector.rabbitmq.uri | RABBIT_URI | RabbitMQ URI spec-compliant URI, ex. amqp://user:pass@host:10000/vhost |
如果你没有修改rabbit默认配置(默认5672端口,用户名密码都是guest) ,也可以只指定RABBIT_ADDRESSES这一个参数。
| Property | Environment Variable | Description |
| zipkin.collector.rabbitmq.addresses | 指定RabbitMQ地址 例如. localhost:5672,127.0.0.1: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 to use. Defaults to / |
| zipkin.collector.rabbitmq.use-ssl | RABBIT_USE_SSL | Set to true to use SSL when connecting to RabbitMQ |
例如:
java -jar zipkin-server-2.24.2-exec.jar --RABBIT_ADDRESSES=127.0.0.1:5672 --RABBIT_USER=guest --RABBIT_PASSWORD=guest
用户名密码本来就是guest的时候,可以省略,直接这样即可:
java -jar zipkin-server-2.24.2-exec.jar --RABBIT_ADDRESSES=127.0.0.1:5672
或者
java -jar zipkin-server-2.24.2-exec.jar --zipkin.collector.rabbitmq.addresses=127.0.0.1:5672
当Zipkin成功启动以后,在rabbitmq会有一个叫做zipkin的队列:

2、配置
intr和calculate,这个type改成rabbit即可

3、测试
启动intr和calculate,调intr的接口,同上
四、持久化到mysql
Zipkin 默认是将监控数据存储在内存的,如果 Zipkin 挂掉或重启的话,那么监控数据就会丢 失。所以如果想要搭建生产可用的 Zipkin,就需要实现监控数据的持久化。而想要实现数据 持久化,自然就是得将数据存储至数据库。好在 Zipkin 支持将数据存储至:
内存(默认)
MySQL
Elasticsearch
Cassandra
Zipkin 支持的这几种存储方式中,内存显然是不适用于生产的。而使用MySQL 的话,当数据量大时,查询较为缓慢,也不建议使用。Twitter 官方使用的是 Cassandra作为 Zipkin 的存储数据库,但国内大规模用 Cassandra 的公司较少,而且 Cassandra 相关文档也不多。Zipkin-server不处理跟踪数据的保留管理。使用ElasticSearch推荐的工具管理数据保留或群集 会无限增长!(这使用Elasticsearch 5 + 功能) 综上,故采用 Elasticsearch 是个比较好的选择。
我这里为了方便,演示持久化到mysql
1、新建数据库
新建数据库zipkin并执行建表脚本
zipkin的初始化建表sql在项目里面有,可以去官网下载:

2、zipkin启动
启动参数加上:
--MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=123456 --MYSQL_DB=zipkin --STORAGE_TYPE=mysql
完整如下:
java -jar zipkin-server-2.24.2-exec.jar --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=123456 --MYSQL_DB=zipkin --STORAGE_TYPE=mysql
如果rabbitmq和mysql同时使用:
java -jar zipkin-server-2.24.2-exec.jar --RABBIT_ADDRESSES=127.0.0.1:5672 --STORAGE_TYPE=mysql --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=123456 --MYSQL_DB=zipkin
3、测试
调接口,查看数据库zipkin的表,发现有数据了
本文介绍了如何下载和启动Zipkin服务,包括通过命令行启动以及在微服务中集成Zipkin以追踪调用链路。还详细讲解了如何配置Zipkin使用RabbitMQ和MySQL进行数据持久化。

1835

被折叠的 条评论
为什么被折叠?



