在須要加監控的服務上進行如下操做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,再查找,數據還在,表示成功