ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ***** # 1. 微服务正常场景下的架构 ![](https://img.kancloud.cn/04/74/0474dee6650912a3de062b633a7f1760_638x400.png) ``` 若微服务出现问题,如何快速定位和解决呢?如,下面俩个问题 ``` ![](https://img.kancloud.cn/57/3c/573cd2d96f37c845037c0c170ff2d9ae_778x141.png) ``` 解决上述问题方案 -- 调用链监控 原理如下: 如果调用正常,trace表中会出现4条数据, 若只出现3条数据,表示用户中心返回响应了,但内容中心没有收到,可能是网络有问题 若只出现2条数据,表示用户中心没有返回响应, 可能是用户中心的API报异常了 若只出现1条数据,表示请求用户中心发送成功,但用户中心没有收到,可能是用户中心挂掉了或网络问题 ``` ![](https://img.kancloud.cn/73/8a/738a013b6c8a77be7711b9f0fb80ade9_672x349.png) # 2. 常用调用链工具 - Sleuth ``` 2-1. 什么事Sleuth? Sleuth是一个Spring Cloud的分布式跟踪解决方案 ``` ``` 2-2. Sleuth术语 ``` ![](https://img.kancloud.cn/e8/f7/e8f7dd524ec416278ca08c12a4e3a2a4_788x181.png)![](https://img.kancloud.cn/f6/01/f601ea7528a834fc5de49e5162b49bef_787x307.png) ``` 2-3. 整合Sleuth 加依赖: compile("org.springframework.cloud:spring-cloud-starter-sleuth") ``` # 3. 调用链的可视化及分析工具 -- Zipkin ``` 3-1. 什么事Zipkin? Zipkin是Twitter开源的分布式跟踪系统,主要用来收集系统的时序数据,从而追踪系统的调用问题; ``` ``` 3-2. Zipkin搭建与整合 搭建参考: http://www.imooc.com/article/291572 访问地址:http://localhost:9411/ 整合(若加上zipkin依赖,则sleuth依赖去掉,因为zipkin包含了sleuth): 第一步: 加依赖 compile("org.springframework.cloud:spring-cloud-starter-zipkin") 第二步:写配置 spring: zipkin: base-url: http://localhost:9411/ sleuth: sampler: # 抽样率,默认0.1 (10%) probability: 1.0 ``` ![](https://img.kancloud.cn/2b/f6/2bf6523d2291a1a3146bdda618a93c21_947x601.png) ``` 3-3. 解决Spring Cloud Alibaba/Spring Cloud整合Zipkin之后的报错问题 参考: http://www.imooc.com/article/291578 ``` ``` 3-4. 调用链的依赖关系图 ``` ![](https://img.kancloud.cn/68/33/6833027a69eac9e6138e2a641e204feb_865x270.png) ``` 3-5. zipkin的环境变量 ``` ![](https://img.kancloud.cn/2f/6c/2f6ca7a0712e3604cc850db37d719ff4_686x405.png) ``` 3-5. Zipkin数据持久化(Elasticsearch 5/6/7) 下载Elasticsearch : https://www.elastic.co/cn/downloads/past-releases#elasticsearch 注意:es7.x开始使用的是jdk11 访问: http://localhost:9200 zipkin链接es: STORAGE_TYPE=elasticsearch ES_HOSTS=localhost:9200 java -jar zipkin-server-2.12.9-exec.jar ``` ``` 使用Elasticsearch 作为Zipkin数据持久化时,依赖关系图无法展示,需要借助Zipkin-dependencies 使用说明: https://github.com/openzipkin/zipkin-dependencies ``` ![](https://img.kancloud.cn/34/bb/34bb563222c268e6560de07bf4ed29d8_896x32.png) ![](https://img.kancloud.cn/53/46/5346ce6befb53d3f11b6f1bc46dc78fc_782x442.png)![](https://img.kancloud.cn/77/94/7794a404e4efc62a1931aa646a397016_817x160.png)