链路追踪_springcloud-第九回 链路追踪Sleuth
背景
微服務(wù)架構(gòu)下,幾乎每一個(gè)前端請(qǐng)求都會(huì)形成一個(gè)復(fù)雜的分布式服務(wù)調(diào)用鏈路,在每條鏈路中任何一個(gè)依賴(lài)服務(wù)出現(xiàn)延遲超時(shí)或者錯(cuò)誤都有可能引起整個(gè)請(qǐng)求最后的失敗,為了快速定位和解決問(wèn)題,需要追蹤服務(wù)請(qǐng)求序列,分布式鏈路監(jiān)控組件在這種需求下產(chǎn)生。
服務(wù)鏈路
解決的問(wèn)題
跟蹤一個(gè)用戶(hù)請(qǐng)求的過(guò)程(包括數(shù)據(jù)采集,數(shù)據(jù)傳輸,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)分析,數(shù)據(jù)可視化),捕獲這些跟蹤數(shù)據(jù),就能構(gòu)建微服務(wù)的整個(gè)調(diào)用鏈的視圖,是調(diào)試和監(jiān)控微服務(wù)的關(guān)鍵工具。
4個(gè)特點(diǎn)
案列結(jié)構(gòu)圖
集成Zipkin使用
Zipkin 提供了鏈路追蹤的可視化 。組成: collector(收集數(shù)據(jù)) Storage(存儲(chǔ)數(shù)據(jù))Web UI (界面)。收集數(shù)據(jù)的方式2種,HTTP(同步)和MQ(異步),默認(rèn)HTTP。
訪問(wèn)9411端口
2. 消費(fèi)端配置
2.1 引入依賴(lài)
org.springframework.cloud spring-cloud-starter-zipkin2.2 在配置文件中聲明zipkin服務(wù)器的地址
spring: rabbitmq: host: localhost port: 9411 username: guest password: guestsleuth: sampler: probability: 1 #默認(rèn)sleuth收集信息的比率是0.1, 10%2.3 項(xiàng)目中調(diào)用
@RequestMapping("hello")public String helloConsumer() { //使用restTemplate調(diào)用消費(fèi)服務(wù)提供者的SERVICE-HI的info服務(wù) //String response=restTemplate.getForObject("http://cloud-consumer-feign/hi", String.class); String response=hiService.sayHello()+" ribbon"; logger.info(response); return response;}3.優(yōu)化
3.1 HTTP改為MQ通信
3.1.1 POM 引入依賴(lài)
org.springframework.cloud spring-cloud-starter-zipkinorg.springframework.amqp spring-rabbit ?3.1.2 配置MQ
spring: application: name: zipkin-server rabbitmq: #配置mq消息隊(duì)列 host: localhost port: 5672 username: guest password: guest?? zipkin: rabbitmq: queue: zipkin3.2 MySQL(內(nèi)存數(shù)據(jù)庫(kù))改為ElasticSearch
docker run --name zipkin -d -p 9411:9411 -e STORAGE_TYPE=elasticsearch -e ES_HOSTS=192.168.60.133:9200 openzipkin/zipkin或者docker-compose
version: '2'services: zipkin: image: openzipkin/zipkin container_name: zipkin environment: - STORAGE_TYPE=elasticsearch - ES_HOSTS=192.168.60.133:9200 #- RABBIT_ADDRESSES=192.168.60.133:5672 #- RABBIT_USER=hangge #- RABBIT_PASSWORD=123 ports: - 9411:9411改造測(cè)試
我們使用谷歌瀏覽器插件 ElasticSearch Head 查看當(dāng)前 Elasticsearch 集群的信息。可以發(fā)現(xiàn) Zipkin 跟蹤數(shù)據(jù)已經(jīng)成功保存進(jìn)來(lái)了。
總結(jié)
以上是生活随笔為你收集整理的链路追踪_springcloud-第九回 链路追踪Sleuth的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小米平板2更新bios版本_【军团战争5
- 下一篇: 原理图元件有波浪线_电气原理图和接线图识