背景

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

服务链路

解决的问题

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

4个特点

案列结构图

集成Zipkin使用

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

  1. 搭建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相关推荐

  1. mysql链路跟踪工具_SkyWalking全链路追踪利器

    随着目前系统架构的复杂度越来越高(中台.微服务),并且线上应用的多级监控覆盖到了通讯.应用处理过程监控并且实现端到端的应用监测,线上性能故障的快速定位修复:而传统的监控分析方式已经无法满足我们的需求, ...

  2. 反浏览器指纹追踪(反浏览器指纹追踪技术)

    浏览器指纹追踪是一种在网络上追踪用户信息的方法.而在大数据时代,更多的人不希望自己的信息被过多收集.为了反制浏览器指纹追踪行为,反浏览器追踪技术也在不断发展. 什么是反浏览器指纹追踪技术? 浏览器指纹 ...

  3. 链路聚合_配置EthTrunk链路聚合

    点击蓝字 关注我们 原理概述 在没有使用Eth-Trunk 前,百兆以太网的双绞线在两个互连的网络设备间的带宽仅为100Mbits.若想达到更高的数据传输速率,则需要更换传输媒介,使用千兆光纤或升级成 ...

  4. 新元宇宙奇科幻小说原创作品每周连载《地球人奇游天球记》第九回女神伴飞

    二十一世纪"新元宇宙"奇科幻小说原创作品系列每周连载[第一部]                <地球人奇游"天球"记>               ...

  5. 计算机视觉(视频追踪检测分类、监控追踪)常用测试数据集

    计算机视觉(视频追踪检测分类.监控追踪)常用测试数据集 (1).WallFlower dataset [链接]: 用于评价背景建模算法的好坏, Ground-truth foreground prov ...

  6. 链路聚合的定义、链路聚合的概念和基本术语、链路聚合的特点

    目录 一.链路聚合(Eth-Trunk)定义: 二.链路聚合基本术语/概念 三.手工模式缺陷 四.链路聚合特点: 五.设备可靠性: 六.链路可靠性: 七.链路聚合带宽影响的因素: 八.链路聚合在osi ...

  7. 链路聚合(手工聚合链路模式+LACP模式)

    想看链路聚合实验的朋友可以到这里: https://blog.csdn.net/weixin_62594100/article/details/124233387https://blog.csdn.n ...

  8. 第九回(一):任侠厨子轻解厄围 夜半蹴鞠为泄忿闷

    (一)第九回:任侠厨子轻解厄围   夜半蹴鞠为泄忿闷 诗曰:                  阶上回首十年馀,后山契语归何处? 忍忆泼悍遮旧容,几度含凄整鱼书. 却说阿四二人方出阿清店门,便有三名身 ...

  9. 第九回(二):任侠厨子轻解厄围 夜半蹴鞠为泄忿闷[林大帅作品集]

    (二)第九回:任侠厨子轻解厄围   夜半蹴鞠为泄忿闷 第二日课上,林二偷偷问阿四道:"昨晚之事,你有甚计较?".阿四顿了顿,"自然是坏事,老弟也不必放在心上,我自有方寸& ...

最新文章

  1. AB1601低功耗时烧写代码注意事项
  2. 你的 A/B 测试数据期骗你了吗?
  3. access中总计为first_用Access开发生产管理系统
  4. 打开excel文件并写入_双击Excel表格文件时只打开程序不能直接打开文件
  5. Java Collections BinarySearch()方法与示例
  6. 依赖反转原理,IoC容器和依赖注入:第3部分
  7. 矩阵(二维数组)的性质在算法求解中的应用
  8. python的基础网络编程是下列_python基础 - 网络编程
  9. 关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB
  10. live2d_一款电脑桌面跨平台开源免费live2D桌面宠物精灵
  11. quartus||仿真图
  12. vim的异常退出处理
  13. 3D语义场景图论文小记
  14. 作为审稿人,你什么情况下会选择拒稿?
  15. 【办公常用软件】万彩办公大师教程丨PDF OCR 帮助文档
  16. codevs 1227 方格取数2
  17. LED常见失效案例及分析
  18. kuangbin专题十二 基础DP
  19. 网站SEO优化只需做到八个方面
  20. 浅析私有化即时通讯软件的功能

热门文章

  1. CVPR 2018论文解读 | 基于域适应弱监督学习的目标检测
  2. 投稿须知 | 让你的文字被很多很多很多人看到
  3. 综述 | 知识图谱向量化表示
  4. python 化学结构_PyOrganic
  5. python telnetlib详解 执行循环命令_Python的Telnetlib read_until'#'或'&GT;',多发串的决心?...
  6. postgresql、mysql数据库varchar、char、text的比较
  7. Linux——SSH连接错误【No supported authentication methods available】解决方案
  8. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第十一章——自编解析与答案
  9. Thymeleaf——在不覆盖现有class属性的情况下动态添加CSS class解决方案
  10. Linux(CentOS 7)——阿里云 云服务器 ECS上Apache服务器安装与配置