java B2B2C Springcloud多租戶電子商城系統-Spring Cloud Sleuth

在微服務框架中,一個由客戶端發起的請求在后端系統中會經過多個不同的的服務節點調用來協同產生最后的請求結果,每一個前段請求都會形成一條復雜的分布式服務調用鏈路,鏈路中的任何一環出現高延時或錯誤都會引起整個請求最后的失敗。

愿意了解源碼的朋友直接企鵝求求:二一四七七七五六三三

Spring Cloud Sleuth提供了一套完整的服務跟蹤的解決方案。Spring Cloud Sleuth借用了Google

Dapper的術語。

Span:工作的基本單位。例如,發送RPC是一個新的跨度,就像發送響應到RPC一樣。Span是由一個唯一的64位ID來標識的,而另一個64位ID用于跟蹤。span還具有其他數據,如描述、時間戳事件、鍵值標注(標記)、導致它們的span的ID和進程ID(通常是IP地址)。

可以啟動和停止跨度,并跟蹤其時間信息。 創建跨度后,必須在將來的某個時刻停止它。

啟動跟蹤的初始范圍稱為根跨度。 該范圍的ID值等于跟蹤ID。

Trace:一組span形成樹狀結構。 例如,如果運行分布式大數據存儲,則可能由PUT請求形成跟蹤。

注解:用于及時記錄事件的存在。 使用Brave工具,我們不再需要為Zipkin設置特殊事件,以了解客戶端和服務器是誰,請求開始的位置以及結束位置。

cs:客戶已發送。 客戶提出了請求。 此注釋表示跨度的開始。

sr:Server Received:服務器端獲得請求并開始處理它。 從此時間戳中減去cs時間戳會顯示網絡延遲。

ss:服務器已發送。 在完成請求處理時(當響應被發送回客戶端時)注釋。

從此時間戳中減去sr時間戳會顯示服務器端處理請求所需的時間。

cr:客戶收到了。 表示跨度的結束。 客戶端已成功收到服務器端的響應。

從此時間戳中減去cs時間戳會顯示客戶端從服務器接收響應所需的全部時間。

下圖顯示了Span和Trace在系統中的外觀以及Zipkin注解:

注釋的每種顏色表示跨度(有七個跨度 - 從A到G)。 請考慮以下注釋:

此注釋表示當前跨度的Trace Id設置為X,Span Id設置為D.此外,還發生了Client Sent事件。

Trace Id = X Span Id = D Client Sent 下圖顯示了跨度的父子關系:

技術架構圖:

代碼結構圖 資料和源碼來源

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281312.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#性能測試BenchmarkDotnet

1.簡介在我們開發高性能代碼時,需要各種針對性能優化進行編碼。那么如何才能知道我們所加的代碼是否有性能方面的正向優化呢?有了BenchmarkDotNet,做性能對比測試就非常容易了,只需要把你的測試方法加上特性[Benchmark], 想做不同…

Requests獲取連接的IP地址

在接口自動化的時候,需要獲取到連接的本地IP地址,方法如下 1 import requests 2 3 rsp requests.get("http://www.baidu.com", streamTrue) 4 print rsp.raw._connection.sock.getpeername()[0] 5 print rsp.raw._connection.sock.getsockna…

阿里云APP(V4.3) SSH遠程登錄功能設置操作指南

阿里云APP V4.3 發布了,這次的升級,不僅在iOS和android平臺上支持SSH遠程登錄ECS功能,也支持密鑰登錄哦~~~ SSH遠程登錄,這是一個連阿里巴巴自己的技術人員都開心不已的功能! 各位攻城獅們,從更新到V4.3的那…

JS專題之節流函數

本文共 2000 字,讀完只需 8 分鐘上一篇文章講了去抖函數,然后這一篇講同樣為了優化性能,降低事件處理頻率的節流函數。 一、什么是節流? 節流函數(throttle)就是讓事件處理函數(handler&#xf…

vue 2.6 插槽v-slot用法記錄

v-slot用法簡記用法示例匿名插槽與具名插槽插槽作用域組件使用插槽動態命名總結用法示例 vue2.6統一了插槽的語法v-slot 匿名插槽與具名插槽 在其他組件中使用child組件 <child><template v-slot:slotName>hello world</template> </child>child組…

Latex排版全解(轉)

Latex排版全解 http://blog.csdn.net/langb2014/article/details/51354238轉載于:https://www.cnblogs.com/yifdu25/p/8338399.html

git-ftp Can't access remote 'ft://...', exiting...問題記錄

環境 服務器&#xff1a;西部數碼虛擬主機 本地系統&#xff1a;windows 10 (LTSC 2019) 軟件&#xff1a; Git Bash&#xff0c;gti-ftp (版本1.6.0) 問題 在使用git ftp init初始化上傳代碼的時候會出現 $ git ftp init fatal: Cant access remote ftp://dmkt:***dmkt.goto…

【Flutter教程】從零構建電商應用(一)

在這個系列中&#xff0c;我們將學習如何使用google的移動開發框架flutter創建一個電商應用。本文是flutter框架系列教程的第一部分&#xff0c;將學習如何安裝Flutter開發環境并創建第一個Flutter應用&#xff0c;并學習Flutter應用開發中的核心概念&#xff0c;例如widget、狀…

為OWA自定義快捷鍵

這篇短文分享一下如何為自己常用的網頁添加自定義功能&#xff0c;例如添加快捷鍵。我這里用一個常用的網站作為范例。它是Outlook Web Access (OWA), 它的地址一般如下。我在寫郵件時希望能用一些快捷鍵來提高工作效率&#xff0c;但系統默認自帶的快捷鍵特別少&#xff0c;而…

數據結構 快速排序

快速排序是對冒泡排序的一種改進&#xff0c;是所有內部排序算法中平均性能最優的排序算法。其基本思想是基于分治法的&#xff1a;在待排序數組L[1...n]中任取一個元素pivot作為基準&#xff0c;從數組的兩端開始掃描。設兩個指示標志&#xff08;low指向起始位置&#xff0c;…

Finally語句塊的運行

一、finally語句塊是否一定運行&#xff1f; Java中異常捕獲機制try...catch...finally塊中的finally語句是不是一定會被運行&#xff1f;非常多人都說不是。當然他們的回答是正確的&#xff0c;經過試驗。至少下面有兩種情況下finally語句是不會被運行的&#xff1a; &#xf…

vue-cli 3.0 跨域請求代理

官方文檔中指明&#xff0c;跨域請求可以通過配置vue.config.js中的devServer.proxy選項來進行配置。 這個選項配置的本質實際上就是http-proxy-middleware中間件的用法&#xff0c;和Webpack-dev-server的proxy一樣。 vue-cli 3.0中介紹了兩種常見的用法&#xff1a; modul…

小米人員架構調整:組建中國區,王川任總裁

12月13日上午&#xff0c;小米內部發布人員調整公開信&#xff0c;信中傳達了兩個重要內容&#xff1a;將銷售與服務部改組為中國區&#xff0c;任命集團高級副總裁王川兼任中國區總裁。 在今年9月份&#xff0c;也就是小米上市前夕&#xff0c;雷軍在一封內部信中宣布對公司組…

在 .NET 7上使用 WASM 和 WASI

WebAssembly&#xff08;WASM&#xff09;和WebAssembly System Interface&#xff08;WASI&#xff09;為開發人員開辟了新的世界。.NET 開發人員在 Blazor WebAssembly 發布時熟悉了 WASM。Blazor WebAssembly 在瀏覽器中基于 WebAssembly 的 .NET 運行時上運行客戶端。WASI通…

Java基礎 五 方法

方法 1.1 方法概述 在我們的日常生活中&#xff0c;方法可以理解為要做某件事情&#xff0c;而采取的解決辦法。 如&#xff1a;小明同學在路邊準備坐車來學校學習。這就面臨著一件事情&#xff08;坐車到學校這件事情&#xff09;需要解決&#xff0c;解決辦法呢&#xf…

django rest framework 過濾 lim分頁

一.過濾 1.首先引用diango 自帶的過濾配置 2.導入模塊 from django_filters.rest_framework import DjangoFilterBackend from django_filters import rest_framework as filters 3.一種簡單的過濾: class BookView(ModelViewSet):queryset Book.objects.all()serializer_clas…

MySQL用戶及權限管理

MySQL用戶及權限管理查看用戶及權限查看用戶及作用域&#xff08;使用范圍&#xff09;查看用戶權限創建用戶及授權字段參數用戶管理使用命令提示符登錄MySQL mysql -h localhost -u root -p查看用戶及權限 mysql中的用戶信息和權限等都存儲在一個名為mysql的數據庫中。其中主…

附近有什么?8款可以查周邊的App

如今科技發達的時代&#xff0c;手機的功能不僅僅只是能通訊聊天&#xff0c;而是逐漸的走進了人們的生活中。因為有了APP&#xff0c;我們的生活才更豐富&#xff0c;并且有很多是我們生活中不可缺少的軟件&#xff0c;而這些軟件便是根據手機中的GPS定位系統而來的。簡單來說…

MyEclipse小問題與漢字處理

今天在使用MyEclipse時&#xff0c;遇到工作目錄報錯(如上圖)&#xff0c;解決方法如下&#xff1a;找到對應工作區(查看工作區的方法為&#xff1a;單擊File → Switch Workspace 即可)依次打開 .metadata文件夾 → .plugins文件夾 → org.eclipse.core.runtime文件夾 → .set…

關系數據庫設計及優化原則

一直以來就想總結一下自己這么多年來在關系數據庫上積累的經驗。奈何自己是一個比較懶的人一直不想動手去寫。扎克伯格曾說過&#xff1a;“想做一件事的話&#xff0c;最好的辦法就是先開始”。索性就先寫一點東西&#xff0c;這些東西不會太長&#xff0c;自然也不會包括太多…