Spring Cloud 微服务(八):链路追踪
时间:2022-07-22
本文章向大家介绍Spring Cloud 微服务(八):链路追踪,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文简单介绍如何在项目中集成链路追踪。
集成 日志收集集成 之后,再做链路追踪就比较简单。
1. 部署 Zipkin 服务
在项目中,添加 peacetrue-microservice-zipkin
模块,安装启动 Zipkin 服务:
$ cd peacetrue-microservice-zipkin
$ curl -sSL https://zipkin.io/quickstart.sh | bash -s
$ java -jar zipkin.jar
因为 zipkin.jar 比较大,没有放在项目中,使用时需要通过以上命令下载。
官网推荐方式是通过 jar 运行,不要内嵌到本地项目运行。不能享受 Spring 统一配置很遗憾。 |
---|
打开 Zipkin 首页 http://localhost:9411 ,界面如下:
Figure 1. zipkin首页
2. 项目改造
只需要添加 org.springframework.cloud:spring-cloud-starter-zipkin
依赖。
3. 测试效果
访问外部客户端 GET /message
接口后,整个调用过程如下:
Figure 2. 测试效果
涉及到 3 个服务,4 次调用,总耗时约 668 毫秒。
4. 使用 Elasticsearch 存储数据
Zipkin 默认使用内存存储,不适合生产环境使用,改为 Elasticsearch。在 日志收集集成 中,已经安装好了 Elasticsearch,这里直接使用。
首先,指定使用 elasticsearch 存储:
$ STORAGE_TYPE=elasticsearch java -jar zipkin.jar
然后,配置 Elasticsearch 的相关参数 [1]:
#指定 Elasticsearch 的地址、用户名和密码
$ STORAGE_TYPE=elasticsearch ES_HOSTS=http://localhost:9200 ES_USERNAME=peacetrue ES_PASSWORD=password java -jar zipkin.jar
命令行指定参数太辛苦,怀念 Spring 的 YML 配置。 |
---|
1. 详细参数看这里 https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage
- 分布式计划任务设计与实现
- 怎样在Python的深度学习库Keras中使用度量
- 网络设备配置管理与版本控制
- 使用Python对Instagram进行数据分析
- 解决多标签分类问题(包括案例研究)
- Docker Compose + GPU + TensorFlow = Heart
- Tensorflow生成模型收集: GANs与VAEs
- How to Install Nginx and PHP-FPM on FreeBSD 10
- 使用Apache MXNet分类交通标志图像
- CentOS 6.4 + nginx-1.2.5 + php-5.4.15 + MySQL-5.5.31
- 面试问题 - 只用位操作在ABAP里实现a+b
- JAVA 中异常处理的最佳实践
- webpack 4 升级指北
- 对抗蠕虫 —— 如何让按钮不被 JS 自动点击
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 26个你需要学习的Firefox配置技巧,改进体验和加快浏览器响应速度
- Softmax算法原理及实现
- Android Activity 活动的生命周期
- Android学习笔记,不断更新
- cJSON,c语言的JSON库!
- 自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客
- Android Spinner下拉框的基本使用
- hadoop本地运行的两个案例。官方Grep案例、官方WordCount案例。
- 腾讯智能闲聊机器人详细开发教程
- 用PyTorch实现MNIST手写数字识别(非常详细)
- 手把手教你从零开始用Java写爬虫
- STM32 cjson的GBK/UTF-8/UNICODE转换、显示中文、GBK字库
- 都说Linux很重要,你会几个Linux命令?来看看这道面试题目。
- 使用VisualGDB将Keil项目导入VisualStudio
- 小白学图像 | Group Normalization详解+PyTorch代码