在须要加监控的服务上进行如下操做java
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency>
sleuth加入以后是没有界面的,因此咱们须要使用Zipkin。mysql
服务端:git
java -jar .\zipkin-server-2.12.9-exec.jargithub
客户端:spring
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
spring.zipkin.base-url=http://localhost:9411/ spring.sleuth.web.client.enabled=true #采样比例,默认0.1,1表示所有上报 spring.sleuth.sampler.probability=1
配置完成,接下来能够在调用接口,而后进入zipkin的网页里查找调用记录了sql
由于每次调用微服务接口都要上报数据,服务端的压力就会很大,因此能够选择采用mq的方式进行削峰,解耦数据库
RABBIT_ADDRESSES=localhost java -jar ../zipkin-server-2.12.9-exec.jarmaven
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rabbit</artifactId> </dependency>
#配置zipkin #spring.zipkin.base-url=http://localhost:9411/ spring.zipkin.sender.type=rabbit spring.sleuth.web.client.enabled=true #采样比例,默认0.1,1表示所有上报 spring.sleuth.sampler.probability=1 spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.rabbitmq.virtual-host=/
再次调用就是使用mq的方式上报了。微服务
目前数据上报都是存在内存中的,zipkin Server重启数据就没了,因此咱们能够须要持久化一下,经常使用的方式是存ES或者mysql,这里演示mysql的作法。
RABBIT_ADDRESSES=localhost STORAGE_TYPE=mysql MYSQL_USER=root MYSQL_PASS=root MYSQL_HOST=localhost MYSQL_TCP_PORT=3306 java -jar zipkin-server-2.12.9-exec.jar
发现数据库已经开始写入数据,重启zipkin,再查找,数据还在,表示成功