日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

使用Zipkin和Sleuth进行SpringBoot微服务跟踪

發布時間:2023/12/3 javascript 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Zipkin和Sleuth进行SpringBoot微服务跟踪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在本文中,我們將了解使用Zipkin和Spring cloud sleuth框架的微服務分布式跟蹤。

盡管微服務具有自身的挑戰,但微服務是出色的架構。 復雜的微服務架構具有與其他微服務的下游和上游依存關系,并且一切都是相互聯系的。 在大多數情況下,各個團隊只是專注于自己的服務,因此在微服務??分布式環境中,很難找到任何延遲或在運行時跟蹤實際問題。

1.分布式跟蹤

隨著微服務架構的復雜性增加,跨服務和服務器實例的統一可觀察性變得至關重要。 每個服務請求都經過多個服務層,使用傳統的調試技術來識別延遲或任何運行時問題變得越來越困難。 分布式跟蹤提供了對通過多種服務傳輸的請求的整體視圖,從而可以立即識別問題。

1.1分布式跟蹤詞匯

  • 跨度 –跨度是一項單獨的操作。
  • 跟蹤 –跟蹤是一個由跨度組成的端到端延遲圖。
  • 示蹤 -示蹤劑記錄跨度和傳遞需要方面將它們連接到跟蹤。

2. Zipkin

Zipkin是一個開放源代碼的分布式系統,它提供了用于發送,接收,存儲和可視化跟蹤詳細信息的機制。 這有助于團隊將服務器實例之間的活動關聯起來,并對我們的服務中發生的事情有更深入的了解。 Zipkin提供UI界面來分析服務之間的跟蹤和調用圖詳細信息。

2.1 Zipkin安裝

可以使用三種不同的方式安裝zipkin服務器。

  • Java –我們可以執行以下wget命令來下載最新的zipkin服務器。 如果沒有安裝wget ,只需復制以下URL并粘貼到瀏覽器中,即可下載最新的zipkin服務器。
wget -O zipkin.jar 'https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec'
  • Zipkin源代碼–我們可以從github url下面下載zipkin源代碼,并在本地計算機上運行zipkin應用程序: https : //github.com/openzipkin/zipkin
  • Docker –我們可以從https://github.com/openzipkin/docker-zipkin下載docker-zipkin容??器

對于此示例應用程序,我已經使用Java方法安裝了Zipkin服務器。

2.2 Zipkin用戶界面

Zipkin UI提供以下功能來分析跨服務的分布式跟蹤詳細信息:

  • 按服務名稱,跨度名稱等搜索跟蹤
  • 跟蹤依賴關系圖顯示了跨服務的跟蹤請求流
  • 提供每個跨度的總跟蹤時間的詳細信息

通過分析Zipkin UI提供的詳細信息,可以更加輕松地發現互連微服務體系結構之間的延遲或任何特定服務問題。

3.春云偵探

Spring cloud sleuth將跟蹤和跨度ID添加到Slf4j MDC (映射診斷上下文),以從給定的跟蹤或跨度提取日志。 Sleuth在常見的分布式跟蹤數據模型(例如跟蹤,跨度,注釋,鍵值注釋)上提供了抽象。 Sleuth會檢測Spring應用程序中的公共入口和出口點( servlet filter, rest template, scheduled actions, message channels, zuul filters, feign client )。

3.1 SpringBoot上的Sleuth和Zipkin配置

在Springboot pom.xml中添加以下依賴項,以將zipkin和spring cloud sleuth添加到SpringBoot應用程序中。

pom.xml

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId> </dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>

4.樣品申請

對于本文,我創建了一個示例應用程序,該應用程序由三個不同的微服務組成,分別稱為UserGreetingService , UserNameService和UserAddressService 。

UserGreetingService實習生調用UserNameService和UserAddressService服務,以為用戶構造完整的問候消息以及名稱和地址詳細信息。

UserGreetingService.java

@SpringBootApplication @RestController @CrossOrigin public class UserGreetingService {@RequestMapping("/api/user/greet")public String greet() {String greetingMsg = "Hello";String userName = restTemplate().getForObject("http://localhost:3001/api/user/name", String.class);String userAddress = restTemplate().getForObject("http://localhost:3002/api/user/address", String.class);return greetingMsg + " " + userName + "!\n\n" + userAddress;}@BeanRestTemplate restTemplate() {return new RestTemplate();}public static void main(String[] args) {SpringApplication.run(UserGreetingService.class,"--spring.application.name=user-greeting-service","--server.port=3000");} }

為了介紹服務延遲,我有意向UserNameService和UserAddressService服務添加了Thread.sleep(1000)和Thread.sleep(2000) 。

您可以從github鏈接下載示例代碼– https://github.com/VishSinha/springbootzipkindemo

4.1啟動Zipkin服務器

要在本地環境中啟動zipkin服務器,請轉至我們下載zipkin服務器的目錄,然后打開命令提示符或終端并執行以下命令:

java -jar zipkin-server-2.5.0-exec.jar

一旦啟動zipkin服務器,就可以使用URL瀏覽Zipkin UI – http:// localhost:9411 / zipkin /

4.2運行樣本

從github下載示例代碼后,使用您最喜歡的IDE(例如eclipse,Intellij)或使用命令提示符啟動所有三個微服務。

一旦所有三個springboot微服務都啟動,請使用瀏覽器或郵遞員UserGreetingService端點URL http:// localhost:3000 / api / user / greet 。

總體而言,您會注意到問候服務花費了3秒鐘以上的時間才能做出響應。 現在,讓我們打開Zipkin UI來分析后臺發生的情況以及為什么總響應時間超過3秒。

打開瀏覽器窗口,并使用默認URL – http:// localhost:9411 / zipkin呈現Zipkin UI。 這將呈現zipkin默認搜索頁面。

Zipkin用戶界面

讓我們從服務名稱中選擇user-greeting-service,然后單擊Find Traces按鈕。

您將看到問候服務的總共3個跨度以及總的響應時間。

Zipkin UI查找跟蹤

單擊“ 3 spans”鏈接,這將呈現每個服務響應時間的詳細信息以及以下其他詳細信息。

Zipkin UI Spans信息

此外,通過單擊每個服務跨度,我們可以獲得每個服務請求的跟蹤ID,跨度ID,父跟蹤ID,服務器實例信息和其他跟蹤詳細信息。 這可以輕松地幫助我們排除任何故障的微服務或延遲問題。

Zipkin UI跨度信息

打開Zipkin UI的“依賴關系”部分后,這將在整個服務中呈現服務依賴關系圖,如下所示:

Zipkin UI依賴圖

5.結論

總體zipkin非常易于集成基于云的微服務應用程序,這為整個服務提供了很多見解和信息,以分析服務的整體運行狀況。 使用Zipkin,我們可以輕松識別任何故障服務,并可以采取糾正措施。

6.參考

  • https://zipkin.io
  • https://github.com/openzipkin/zipkin

翻譯自: https://www.javacodegeeks.com/2018/03/springboot-microservices-tracing-with-zipkin-and-sleuth.html

總結

以上是生活随笔為你收集整理的使用Zipkin和Sleuth进行SpringBoot微服务跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。