微服務常用日志追蹤方案:Sleuth + Zipkin + ELK

在微服務架構中,一個用戶請求往往需要經過多個服務的協同處理。為了有效追蹤請求的完整調用鏈路,需要一套完整的日志追蹤方案。Sleuth + Zipkin + ELK 組合提供了完整的解決方案

  • Sleuth:生成和傳播追蹤ID
  • Zipkin:收集、存儲和可視化追蹤數據
  • ELK:集中存儲和檢索業務日志
  • MDC:實現日志與追蹤上下文的關聯

1.組件介紹

組件一:Spring Cloud Sleuth

自動生成唯一的TraceID和SpanID,通過HTTP頭或消息中間件在服務間傳播這些ID,與MDC集成,將追蹤信息注入日志

spring:sleuth:sampler:probability: 1.0 # 采樣率,1.0表示100%采樣propagation:type: B3 # 使用Zipkin的B3傳播協議

組件二:Zipkin

收集各服務上報的追蹤數據,存儲調用鏈路信息,提供可視化界面展示調用鏈路和耗時

服務 → 上報數據 → Zipkin Collector → Storage → Zipkin UI

存儲選項:開發環境使用內存,正式環境推薦配置為Elasticsearch

spring:zipkin:base-url: http://zipkin-server:9411sender:type: web # 使用HTTP方式上報

組件三:ELK Stack (Elasticsearch + Logstash + Kibana)

Elasticsearch用于存儲和索引日志數據,Logstash用于收集、過濾和轉發日志,Kibana用于可視化查詢和分析日志。確保日志中包含TraceID,便于通過TraceID關聯業務日志和調用鏈路

2.完整請求鏈路示例

  • 用戶請求到達服務A,生成TraceID: abc123,生成SpanID: def456

  • 服務A調用服務B,攜帶HTTP頭: X-B3-TraceId=abc123, X-B3-ParentSpanId=def456,服務B生成新SpanID: ghi789

  • 日志輸出

服務A日志: [abc123,def456,order-111] INFO ... 創建訂單開始
服務B日志: [abc123,ghi789,order-111] INFO ... 庫存扣減開始
  • 調用鏈路信息上報Zipkin,業務日志發送到ELK
  • 通過Zipkin發現異常服務,通過TraceID在ELK中查找相關日志,通過業務ID追蹤特定業務對象全鏈路

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

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

相關文章

R語言基礎| 創建數據集

在R語言中,有多種數據類型,用以存儲和處理數據。每種數據類型都有其特定的用途和操作函數,使得R語言在處理各種數據分析任務時非常靈活和強大: 向量(Vector): 向量是R語言中最基本的數據類型,它…

nssctf第二題[SWPUCTF 2021 新生賽]簡簡單單的邏輯

這是題目&#xff0c;下載后得到一個python文件,打開 解讀代碼&#xff1a; for i in range(len(list)):key (list[i]>>4)((list[i] & 0xf)<<4)result str(hex(ord(flag[i])^key))[2:].zfill(2)list[i]>>4&#xff1a;從列表中取數字同時高4位向右位…

mysql(十五)

目錄 子查詢 1.準備工作 2--創建表格 3--插入數據 2.where 子查詢單列單個數據 格式 查詢 3.where 子查詢單列多個數據(in) 格式 查詢 使用子查詢 4.from 多行多數據 格式 查詢 子查詢 將select的查詢的返回結果 當成另外一個selet語句的內容去使用。 子查詢放在()里面 注意…

【HarmonyOS 5】鴻蒙Taro跨端框架

?Taro跨端框架? 支持React語法開發鴻蒙應用&#xff0c;架構分為三層&#xff1a; ArkVM層運行業務代碼和React核心TaroElement樹處理節點創建和屬性綁定TaroRenderNode虛擬節點樹與上屏節點一一對應 import { Component } from tarojs/taro export default class MyCompon…

華為OD機試真題——會議接待 /代表團坐車(2025A卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式! 本文收錄于專欄:《2025華為OD真題目錄+全流程解析/備考攻略/經驗分享》 華為OD機試真題《會議…

C語言---動態內存管理、柔性數組

一、malloc和free 1、變長數組 變長數組是指數組的大小可以通過變量來指定。 在c99以及之后的標準中&#xff1a; #include<stdio.h> int main() { int n0; scanf("%d",&n); } 2、malloc和free 這個函數向內存申請一塊連續可用的空間&#xff0c;并返…

WEBSTORM前端 —— 第3章:移動 Web —— 第4節:移動適配-VM

目錄 一、適配方案 二、VM布局 ?編輯 三、vh布局 四、案例—酷我音樂 一、適配方案 二、VM布局 三、vh布局 四、案例—酷我音樂

Dynamics 365 Business Central AI Sales Order Agent Copilot

#AI Copilot# #D365 BC 26 Wave# 最近很多客戶都陸續升級到 Dynamics 365 Business Central 26 wave, Microsoft 提供一個基于Copilot 的Sales Order Agent&#xff0c;此文將此功能做個介紹. Explorer: 可以看到26版本上面增加了這樣一個新圖標。 Configuration: 配置過程…

【harbor】--配置https

使用自建的 CA 證書來自簽署和啟用 HTTPS 通信。 &#xff08;1&#xff09;生成 CA認證 使用 OpenSSL 生成一個 2048位的私鑰這是 自建 CA&#xff08;證書頒發機構&#xff09; 的私鑰&#xff0c;后續會用它來簽發證書。 # 1創建CA認證 cd 到harbor [rootlocalhost harbo…

Selenium基礎操作方法詳解

Selenium基礎操作方法詳解&#xff1a;從零開始編寫自動化腳本&#xff08;附完整代碼&#xff09; 引言 Selenium是自動化測試和網頁操作的利器&#xff0c;但對于新手來說&#xff0c;掌握基礎操作是成功的第一步。本文將手把手教你使用Selenium完成瀏覽器初始化、元素定位、…

python同步mysql數據

python寫了一個簡單的mysql數據同步腳本,只作為學習練習,大佬勿噴 # -*- coding: utf-8 -*- """ Time:2025/5/29 14:38 Auth:HEhandsome """ import pymysql from pymysql import Connectclass Mysql:def __init__(self):#源數據庫self.sou_hos…

手撕Java+硅基流動實現MCP服務器教程

手撕Java硅基流動實現MCP服務器教程 一、MCP協議核心概念 MCP是什么 MCP 是 Anthropic (Claude) 主導發布的一個開放的、通用的、有共識的協議標準。 ● MCP 是一個標準協議&#xff0c;就像給 AI 大模型裝了一個 “萬能接口”&#xff0c;讓 AI 模型能夠與不同的數據源和工…

.net consul服務注冊與發現

.NET中Consul服務注冊與發現的技術實踐 在微服務架構中&#xff0c;服務的注冊與發現是至關重要的環節&#xff0c;它能幫助各個服務之間實現高效的通信和協作。Consul作為一款功能強大的工具&#xff0c;為我們提供了優秀的服務注冊與發現解決方案。今天&#xff0c;我們就來…

大數據量下的數據修復與回寫Spark on Hive 的大數據量主鍵沖突排查:COUNT(DISTINCT) 的陷阱

背景與問題概述 這一周&#xff08;2025-05-26-2026-05-30&#xff09;我在搞數據擬合修復優化的任務&#xff0c;有大量的數據需要進行數據處理及回寫&#xff0c;大概一個表一天一分區有五六千萬數據&#xff0c;大約一百多列的字段。 具體是這樣的我先取檔案&#x…

基于 AUTOSAR 的域控產品軟件開發:從 CP 到 AP 的跨越

基于 AUTOSAR 的域控產品軟件開發&#xff1a;從 CP 到 AP 的跨越 一、AUTOSAR AP 架構解析&#xff1a;面向智能汽車的自適應框架 &#xff08;一&#xff09;引言 隨著汽車智能化向 L3 演進&#xff0c;傳統 AUTOSAR CP&#xff08;經典平臺&#xff09;在實時性、動態性和…

Nacos 配置管理案例:nacos-spring-cloud-config-example詳解

一、結構說明&#xff1a;基于Spring Cloud Alibaba的微服務示例 nacos-spring-cloud-config-example : 服務提供者 二、技術棧&#xff1a;Spring BootSpring CloudSpring Cloud Alibaba Nacos Actuator&#xff08;可選&#xff1a;監控&#xff09; 三、使用環境 安裝…

BUUCTF[ACTF2020 新生賽]Include 1題解

BUUCTF[ACTF2020 新生賽]Include 1題解 題目分析&#xff1a;知識準備&#xff1a;php://filter 過濾器參數說明常用過濾器功能對照表 開始解題&#xff1a;原理解析構造payload 總結 題目分析&#xff1a; 生成靶機&#xff0c;打開網址&#xff0c;查看源碼&#xff0c;抓包…

vscode + cmake + ninja+ gcc 搭建MCU開發環境

vscode cmake ninja gcc 搭建MCU開發環境 文章目錄 vscode cmake ninja gcc 搭建MCU開發環境1. 前言2. 工具安裝及介紹2.1 gcc2.1.1 gcc 介紹2.1.2 gcc 下載及安裝 2.2 ninja2.2.1 ninja 介紹2.2 ninja 安裝 2.3 cmake2.3.1 cmake 介紹2.3.2 cmake 安裝 2.4 VScode 3. 上手…

九(1). 引用作為函數參數的使用

引用作為參數使用 在 C 中&#xff0c;引用作為函數參數是一種高效且靈活的參數傳遞方式&#xff0c;它避免了拷貝開銷&#xff0c;同時允許函數直接操作原始數據。 以下是關于引用作為參數的詳細使用指南和最佳實踐&#xff1a; 1. 引用作為參數的基本用法 (1) 普通引用&…

Linux多路TTS混音播放:讓多個語音同時清晰可聽

Linux多路TTS混音播放:讓多個語音同時清晰可聽 為什么需要多路混音播放?技術原理概述第一步:配置ALSA dmix混音插件為什么需要dmix?具體配置步驟第二步:生成TTS語音文件為什么需要格式轉換?Python生成腳本第三步:實現多路同時播放播放器設計原理Python實現代碼多路同時播…