亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第5天 服務調用鏈追蹤-Sleuth

標簽:
架構

课程名称Java架构师-技术专家
课程章节: 阶段四 · 服务调用链追踪、消息驱动
课程讲师: 慕课讲师团队

课程内容

调用链路数据模型

Trace,Span,Annotatio

Sleuth数据结构

  • Trace :它就是从头到尾贯穿整个调用链的 ID ,叫做 Trace ID,不管调用链路中途访问了多少服务节点,在每个节点的 log 中都会打印同一个 Trace ID

  • Span:它标识了 Sleuth 下面一个基本的工作单元,每个单元都有一个独一无二的 ID。比如 服务 A 发起对 服务 B 的调用,这个事件就可以看作一个独立单元,生成一个独立 ID。

Span 不仅仅是一个 ID ,还包含一些其它的信息,比如时间戳,它标识了这个 Span 在执行过程中发起的一些特殊事件。

Annotation标记

一个 Span 可以包含多个 Annotation ,每个 Annotation 表示一个特殊事件,比如:

  • cs Client Sent,客户端发送了一个调用请求。

  • sr Server Received,服务端收到了来自客户端的调用

  • ss Server Sent,服务端将 Response 发送给客户端

  • cr Client Received:客户端收到了服务端发来的 Response

每个 Annotation 同样有一个时间戳字段,这样我们就能分析一个 Span 内部每个事件的起始和结束事件。

5e13fec609dfb60018761582

上面的图中调用了两个接口 Server 1 和 Service 2 ,整个调用过程的所有 Span 都有相同的 Trace ID,但每一个 Span 都有独立的 Span ID。其中 Service 1 对 Service 2 的调用分为两个 Span ,蓝色 Span 的时间跨度从调用发起直到调用结束,分别记录了 4 个特殊事件(对应客户端和服务端对Request 和 Response 的传输)。绿色 Span 主要针对 Service 2 内部业务的处理,因此我们在 Service2 中打印的日志会带上绿色 Span 的 ID。

服务节点间的 ID 传递

Sleuth 通过 Filter 向 Header 中添加追踪信息。

HTTP Header Name

Trace Data

X-B3-TraceId

Trace ID

链路全局唯一ID

X-B3-SpanId

Span ID

当前 Span 的 ID

X-B3-ParentSpanId

Parent Span ID

前一个Span 的ID

X-Span-Export

Can be exported for sampling or not

是否可以被采样

在调用下一个服务的时候,Sleuth 会在当前的 Request Header 中写入上面的信息,这样下游系统就很容易识别出当前 Trace ID以及它的前置 Span ID 是什么。

整合 Sleuth 追踪调用链路

  • 创建 sleuth-traceA 和 sleuth-traceB,添加 Sleuth 依赖

  • 调用请求链路,查看 log 中的信息

  • 采样率设置

课程收获

今天学习的收获是

  • 链路追踪后面的数据结构

  • Sleuth 是如何在不同服务节点之间传递数据的。

图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
6
獲贊與收藏
11

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消