失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 链路追踪_springcloud-第九回 链路追踪Sleuth

链路追踪_springcloud-第九回 链路追踪Sleuth

时间:2023-06-24 18:27:32

相关推荐

链路追踪_springcloud-第九回 链路追踪Sleuth

背景

微服务架构下,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整个请求最后的失败,为了快速定位和解决问题,需要追踪服务请求序列,分布式链路监控组件在这种需求下产生。

服务链路

解决的问题

跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,是调试和监控微服务的关键工具。

4个特点

案列结构图

集成Zipkin使用

Zipkin提供了链路追踪的可视化 。组成: collector(收集数据) Storage(存储数据)Web UI (界面)。收集数据的方式2种,HTTP(同步)和MQ(异步),默认HTTP。

搭建zipkin服务器

docker run -d -p 9411:9411 openzipkin/zipkin

访问9411端口

2. 消费端配置

2.1 引入依赖

org.springframework.cloud spring-cloud-starter-zipkin

2.2 在配置文件中声明zipkin服务器的地址

spring: rabbitmq: host: localhost port: 9411 username: guest password: guestsleuth: sampler: probability: 1 #默认sleuth收集信息的比率是0.1, 10%

2.3 项目中调用

@RequestMapping("hello")public String helloConsumer() { //使用restTemplate调用消费服务提供者的SERVICE-HI的info服务 //String response=restTemplate.getForObject("http://cloud-consumer-feign/hi", String.class); String response=hiService.sayHello()+" ribbon"; logger.info(response); return response;}

3.优化

3.1 HTTP改为MQ通信

3.1.1 POM 引入依赖

org.springframework.cloud spring-cloud-starter-zipkinorg.springframework.amqp spring-rabbit

3.1.2 配置MQ

spring: application: name: zipkin-server rabbitmq: #配置mq消息队列 host: localhost port: 5672 username: guest password: guest zipkin: rabbitmq:queue: zipkin

3.2 MySQL(内存数据库)改为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

改造测试

我们使用谷歌浏览器插件ElasticSearch Head查看当前Elasticsearch集群的信息。可以发现Zipkin跟踪数据已经成功保存进来了。

如果觉得《链路追踪_springcloud-第九回 链路追踪Sleuth》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。