【prometheus+Grafana篇】Prometheus與Grafana:深入了解監控架構與數據可視化分析平臺

💫《博主主頁》:奈斯DB-CSDN博客

🔥《擅長領域》:擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控;并對SQLserver、NoSQL(MongoDB)有了解

💖如果覺得文章對你有所幫助,歡迎點贊收藏加關注💖

? ? 在當今復雜的系統架構中,監控平臺如同系統的"神經系統",能夠第一時間感知系統異常,為運維人員提供關鍵的診斷線索。面對市面上眾多的監控解決方案——從老牌穩定的Zabbix、新興的夜鶯監控,到企業級的騰訊藍鯨平臺——我們不禁要問:是否存在一款既開源免費,又能提供強大可視化能力的監控平臺?

? ? 答案是肯定的!Prometheus+Grafana?這對黃金組合正是滿足這一需求的完美解決方案。作為一名長期在生產環境中使用這套工具監控各類系統的實踐者,我將通過本系列文章,詳細分享如何利用prometheus+Grafana監控多種數據庫?💫?!

? ? 無論是剛開始接觸系統監控,還是希望優化現有的監控體系,這個系列都將為各位提供實用的參考。讓我們開始這段監控實踐之旅,掌握這套云原生時代最流行的監控方案!

? ? 對于這個系列,博主主要還是分享關于prometheus+Grafana如何監控多種數據庫的文章,對于需要監控其他系統或者學習prometheus其他相關內容的可以在B站上搜索“林哥Linux”UP主,這位大佬詳細介紹了prometheus+Grafana,并且課程是完全免費的,免費是情誼,收費是本分,感謝大佬為愛發電?💞?,為我們帶來了如此寶貴的學習資源。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

特別說明💥:本篇文章部分知識點均來源于 prometheus、Grafana 公開可查的官方文檔手冊和大模型DeepSeek-V3 的見解,并結合了我個人的理解和案例演示。如有沖突,請聯系,會立即處理。轉載請標明出處😄

? ? ? ? ? ? ? ? ? ? ? ?

prometheus官網文檔手冊:

Overview | Prometheus

? ? ? ? ? ? ? ? ? ? ? ??

Grafana 官網:

Grafana: The open and composable observability platform | Grafana Labs

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ?

prometheus+Grafana全系列文章(實時更新?🔥?):

【prometheus+Grafana篇】Prometheus與Grafana:深入了解監控架構與數據可視化分析平臺-CSDN博客


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

目錄

一、Prometheus

1.1?Prometheus Server(核心服務)

1.2 Exporters(指標暴露器)

1.3 Pushgateway(臨時任務指標網關)

1.4 Alertmanager(告警管理器)

1.5 Client Libraries(客戶端庫)

1.6?Service Discovery(服務發現)

1.7?PromQL(查詢語言)

二、Grafana

2.1?Grafana Server(后端服務)

2.2?Grafana UI(前端界面)

2.3?數據源插件(Data Source Plugins)

2.4?面板插件(Panel Plugins)

2.5?告警系統(Alerting)

2.6?用戶與權限管理


? ? ? ? ? ? ? ??

一、Prometheus

? ? Prometheus 是一個 開源 的系統監控和告警工具,靈感來源于 Google 的 Borgmon 監控系統(類似地,Kubernetes 也是從 Google 的 Borg 系統演變而來)。該項目從 2012 年開始由前 Google 工程師在 Soundcloud 開發,并于 2015 年早期發布了早期版本。2016 年 5 月,Prometheus 成為繼 Kubernetes 之后第二個正式加入 CNCF 基金會的項目,并于同年 6 月發布了 1.0 版本。2017 年底,Prometheus 發布了基于全新存儲層的 2.0 版本,進一步增強了與容器平臺和云平臺的兼容性。

? ? 在官網上截一張prometheus的基礎架構圖,從這個架構圖,可以看出Prometheus的主要模塊包含:Prometheus Server、Exporters、Pushgateway、Alertmanager、Client Libraries、Service Discovery、PromQL、WebUI等。

組件核心功能適用場景
Prometheus Server數據采集、存儲、查詢和告警評估所有監控場景
Exporters轉換第三方系統指標數據庫、中間件、硬件監控
Pushgateway接收短期任務指標Cron Job、批處理任務
Alertmanager告警管理和通知異常告警通知
Client Libraries應用內直接暴露指標自定義業務監控
Service Discovery動態發現監控目標Kubernetes、云環境

PromQL

查詢、聚合和分析時間序列數據所有查詢場景

? ? 通過以上組件的協同工作,Prometheus 實現了從數據采集、存儲到告警和可視化的完整監控閉環。

? ? ? ? ? ??

? ? ? ? ? ? ??

普羅米修斯使用邏輯:

  1. Prometheus server定期從靜態配置的targets或者服務發現的targets拉取數據(Targets是Prometheus采集Agent需要抓取的采集目標)
  2. 當新拉取的數據大于配置內存緩存區的時候,Prometheus會將數據持久化到磁盤(如果使用remote storage將持久化到云端)。
  3. Prometheus可以配置rules,然后定時査詢數據,當條件觸發的時候,會將alerts推送到配置的Alertmanager。
  4. Alertmanager收到警告的時候,可以根據配置(163,釘釘等),聚合,去重,降噪,最后發送警告。
  5. 可以使用APl,Prometheus Console或者Grafana查詢和聚合數據。

? ? ? ? ??

? ? ? ? ? ??

普羅米修斯的主要特點:

  1. 支持多維數據模型由指標名稱和鍵值對標識的時間序列數據
  2. 內置時間序列庫TSDB(Time Serices Database)
  3. 支持PromQL(Promethues Query Language,普羅米修斯的專屬查詢語言),對數據的查詢和分析、圖形展示和監控告警。對于監控告警也使用的是PromQL(Promethues Query Language,普羅米修斯的專屬查詢語言)。
  4. 不依賴分布式存儲,單個服務器節點是自治的。
  5. 支持HTTP的拉取(pull)方式收集時間序列數據。
  6. 通過中間網關Pushgateway推送時間序列。
  7. 通過服務發現或靜態配置2種方式發現目標。
  8. 支持多種可視化和儀表盤,如:grafana。

? ? ? ? ? ? ? ? ??

1.1?Prometheus Server(核心服務)

? ? ? ? ? ? ? ? ? ? ? ?

作用:
??數據抓取(Scraping):定期從配置的目標(如 Exporters、應用程序)拉取(Pull)指標數據。
??數據存儲:將采集的指標存儲在本地時間序列數據庫(TSDB)中。
??數據查詢:提供 PromQL 查詢語言,支持實時分析和聚合數據。
??告警規則評估:根據配置的告警規則alert.rules觸發告警。

? ? ? ? ? ? ? ? ? ? ?

工作流程

  1. ?scrape_configs?定義的目標(如?node_exporter:9100)拉取?/metrics?數據。

  2. 將數據壓縮后寫入 TSDB(時間序列數據庫)。

  3. 提供 HTTP API 供 Grafana 或其他工具查詢數據。

? ? ? ? ? ? ? ? ? ? ? ?

1.2 Exporters(指標暴露器)

? ? ? ? ? ??

作用
??將非 Prometheus 原生指標轉換為 Prometheus 可讀格式。
? 適用于無法直接暴露?/metrics?的系統(如 MySQL、Redis、Nginx)。

? Prometheus社區提供了豐富的Exporter實現,涵蓋了從基礎設施,中間件以及網絡等各個方面的監控功能。這些Exporter可以實現大部分通用的監控需求。進入到官網,然后選擇download,然后點擊“Exporters and integrations”

? ? ? ? ? ? ? ? ? ? ? ? ??

常見 Exporters

范圍

常用exporter

數據庫

MySQL Exporter, Redis Exporter, MongoDB Exporter, MSSQL Exporter等

硬件

Apcupsd Exporter, IoT Edison Exporter, IPMI Exporter, Node Exporter等

消息隊列

Beanstalkd Exporter, Kafka Exporter, NSQ Exporter, RabbitMQ Exporter等

存儲

ceph Exporter, Gluster Exporter, HDFS Exporter, ScalelO Exporter等

HTTP服務

Apache Exporter, HAProxy Exporter, Nginx Exporter等

API服務

AWS ECS Exporter, Docker Cloud Exporter, Docker Hub Exporter, GitHub Exporter等

日志

Fluentd Exporter, Grok Exporter等

監控系統

Collectd Exporter, Graphite Exporter, influxDB Exporter, Nagios Exporter, SNMP Exporter等

其它

Blockbox Exporter, liRA Exporter, lenkins Exporter, Confluence Exporter等

? ? ? ? ? ? ? ? ? ? ?

1.3 Pushgateway(臨時任務指標網關)

? ? ? ? ? ? ? ? ? ?

作用
??接收短期任務(如 Cron Job)推送的指標。
? 解決 Prometheus Pull 模型無法監控短暫存活服務的問題。

? ? ? ? ? ? ? ?

適用場景

  • 批處理任務(如每日數據備份)

  • 無法長期運行的服務

? ? ? ? ? ? ?

工作流程

  1. 任務運行完成后,將指標推送到 Pushgateway。

  2. Prometheus 從 Pushgateway 拉取數據。

? ? ? ? ??

示例:

# 使用 curl 推送指標到 Pushgateway
echo "my_metric 3.14" | curl --data-binary @- http://pushgateway:9091/metrics/job/my_job

? ? ? ? ? ? ? ?

1.4 Alertmanager(告警管理器)

? ? ? ? ? ? ? ? ? ? ? ? ? ?

作用
??接收 Prometheus 的告警通知,并進行去重、分組和路由。
? 支持多種告警通知方式(郵件、Slack、Webhook 等)。

? ? ? ? ? ? ? ?

核心功能

  • 去重(Deduplication):合并相同告警,避免轟炸。

  • 分組(Grouping):將相關告警合并為一條通知(如同一服務的多個實例)。

  • 靜默(Silencing):臨時屏蔽特定告警。

? ? ? ? ? ? ? ??

1.5 Client Libraries(客戶端庫)

作用
??在應用程序中直接暴露 Prometheus 格式的指標,無需額外 Exporter。

? ? ? ? ? ? ? ? ? ? ?

支持語言

  • Go (prometheus/client_golang)

  • Java (io.prometheus)

  • Python (prometheus_client)

  • Ruby (prometheus-client)

? ? ? ? ? ? ??

示例(Go 語言)

import "github.com/prometheus/client_golang/prometheus"// 定義一個計數器
var requestCount = prometheus.NewCounter(prometheus.CounterOpts{Name: "http_requests_total",Help: "Total HTTP requests",},
)// 注冊指標
prometheus.MustRegister(requestCount)// 在 HTTP 處理函數中遞增
requestCount.Inc()

? ? ? ? ? ? ? ? ?

1.6?Service Discovery(服務發現)

?? ? ? ? ? ? ? ? ? ? ? ? ??

作用
??動態發現監控目標(如 Kubernetes Pods、云服務器)。

? ? ? ? ? ? ??

支持的服務發現機制

  • Kubernetes:自動發現 Pods、Services。

  • Consul:通過 Consul 注冊中心獲取服務列表。

  • 文件靜態配置:通過?file_sd_configs?加載目標列表。

? ? ? ? ? ??

示例(Kubernetes 發現)

scrape_configs:- job_name: 'kubernetes-pods'kubernetes_sd_configs:- role: podrelabel_configs:- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]action: keepregex: true

? ? ? ? ? ?

1.7?PromQL(查詢語言)

??? ? ? ? ? ? ??

作用
??查詢、聚合和分析時間序列數據

? ? ? ? ? ? ?

常用查詢示例

# 計算 CPU 使用率
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)# 統計 HTTP 請求錯誤率
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ??

二、Grafana

? ? Grafana 是一個開源的?數據可視化與分析平臺,專注于監控數據的展示和告警管理。它的架構設計靈活,支持多種數據源,并提供強大的儀表盤功能。

? ? Grafana 采用?前后端分離?的設計,主要分為:

  • 后端(Server):處理數據查詢、用戶認證、告警等邏輯。
  • 前端(UI):基于 React 的交互式儀表盤。

  • 數據源插件:支持 Prometheus、MySQL、Elasticsearch 等 30+ 數據源。

組件核心功能關鍵用途
Grafana Server數據處理、告警、權限管理后端邏輯處理
Grafana UI儀表盤編輯和展示用戶交互界面
Data Sources連接外部數據存儲統一查詢不同數據庫
Panel Plugins提供圖表類型(折線圖、表格等)數據可視化
Alerting基于查詢結果的告警管理異常通知
User Management權限控制和多租戶支持團隊協作與安全

? ? Grafana 通過靈活的插件架構和強大的可視化能力,成為監控領域的事實標準工具。結合 Prometheus 使用時,能構建從數據采集、存儲到分析和告警的完整監控體系。

? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ??

Grafana的主要特點:

  1. 跨平臺性:Grafana是一個跨平臺的開源的分析和可視化工具,支持多種操作系統,包括Linux、Windows、MacOS等。
  2. 豐富的數據源支持:Grafana支持多種數據源,如Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch等,使得用戶可以方便地整合各種數據來源進行可視化分析。
  3. 強大的可視化功能:Grafana具有快速靈活的客戶端圖表,提供了豐富的儀表盤插件和面板插件,支持多種展示方式,如折線圖、柱狀圖、餅圖、點狀圖等,可以滿足用戶不同的可視化需求。
  4. 警報功能:Grafana允許用戶設置警報規則,當數據達到設定閾值時,會通過郵件、釘釘、企業微信等方式發送通知,及時提醒用戶關注數據異常。

? ? ? ? ? ?

? ? ? ? ? ? ? ? ?

?Grafana的基本功能

  1. 數據查詢與可視化:用戶可以通過Grafana查詢各種數據源中的數據,并將其以圖表的形式展示出來,便于用戶進行數據分析和監控。
  2. 儀表盤創建與編輯:Grafana提供了靈活的儀表盤創建和編輯功能,用戶可以根據自己的需求自定義儀表盤,添加或刪除面板,調整面板的布局和樣式等。
  3. 用戶管理與權限控制:Grafana支持用戶管理和權限控制功能,管理員可以為不同用戶設置不同的權限,確保數據的安全性和私密性。
  4. 插件擴展:Grafana支持插件擴展功能,用戶可以通過安裝插件來增強Grafana的功能和可視化效果。

? ? ? ? ? ? ? ? ? ? ? ? ? ?

2.1?Grafana Server(后端服務)

作用
??處理用戶請求(如儀表盤渲染、數據查詢)。
??管理數據源(配置連接信息、認證)。
??告警引擎(評估告警規則并觸發通知)。
??用戶權限控制(RBAC 權限管理)。

? ? ? ? ? ??

關鍵子模塊

模塊功能
HTTP API提供 RESTful 接口供前端調用(如創建儀表盤、查詢數據)。
Data Proxy代理查詢請求到不同數據源,統一返回格式。
Alerting Engine定時檢查告警規則,觸發通知(需配置?alertmanager?或內置告警)。
Plugin Loader加載和管理數據源、面板等插件。

? ? ? ? ? ??

2.2?Grafana UI(前端界面)

作用
??可視化儀表盤:拖拽式編輯圖表、表格等面板。
??交互式查詢:通過 UI 構建查詢語句(如 PromQL、SQL)。
??告警管理:配置和查看告警狀態。

? ? ? ? ? ??

核心功能

  • Dashboard:由多個 Panel(面板)組成的可視化頁面。

  • Explore:直接查詢和探索數據的交互模式。

  • Alerting:告警規則配置和狀態查看。

??

2.3?數據源插件(Data Source Plugins)

作用
??連接外部數據存儲(如 Prometheus、MySQL、InfluxDB)。
??轉換數據格式:將不同數據源的返回結果統一為 Grafana 可識別的結構。

? ? ? ? ??

常見數據源

數據源適用場景查詢語言
Prometheus監控指標分析PromQL
MySQL業務數據可視化SQL
Elasticsearch日志分析Lucene Query
Loki日志聚合(Grafana 原生方案)LogQL

? ??

2.4?面板插件(Panel Plugins)

作用
??提供不同類型的可視化圖表(如折線圖、儀表盤、熱力圖)。
??支持自定義插件開發(社區提供 100+ 面板插件)。

? ? ? ? ? ? ??

常用內置面板

面板類型用途示例
Graph時間序列數據趨勢圖CPU 使用率曲線
Gauge單值儀表盤磁盤剩余空間百分比
Table表格展示慢查詢日志列表
Heatmap密度分布圖請求延遲分布

? ? ? ? ? ?

2.5?告警系統(Alerting)

作用
??基于數據源查詢結果觸發告警(如 CPU 使用率 > 90%)。
??支持多通知渠道(郵件、Slack、PagerDuty)。

? ? ? ? ? ?

工作流程

  1. 定義告警規則:在儀表盤中配置條件(如?avg(cpu_usage) > 90)。

  2. 評估規則:Grafana 定時執行查詢并檢查條件。

  3. 觸發通知:通過配置的渠道發送告警。

? ? ? ? ? ? ?

告警規則示例

- name: HighCPUinterval: 1mrules:- alert: CPUOverloadexpr: avg(rate(node_cpu_seconds_total[5m])) > 0.9for: 5mannotations:summary: "High CPU usage on {{ $labels.instance }}"

? ? ? ? ? ? ? ?

2.6?用戶與權限管理

作用
??控制用戶訪問權限(如只讀用戶、管理員)。
??組織(Organization)隔離:支持多租戶場景。

? ? ? ??

權限模型

角色權限范圍
Viewer僅查看儀表盤
Editor編輯儀表盤,但不能修改數據源
Admin管理數據源、用戶和全局設置

? ? 關于Prometheus和Grafana的基礎介紹就到這里。只有深入了解了它們的基礎知識和體系架構,才能更好地進行后續的安裝與部署工作。那么我們下篇安裝部署見💓!!!

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

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

相關文章

基于n8n的AI應用工作流原理與技術解析

基于n8n的AI應用工作流原理與技術解析 在AI技術深度融入企業數字化轉型的今天,開源工作流自動化工具n8n憑借其靈活的架構和強大的集成能力,成為構建智能自動化流程的核心引擎。本文將從技術原理、AI融合機制、典型應用場景三個維度,解析n8n在…

經濟指標學習(二)

系列文章目錄 文章目錄 系列文章目錄1、市凈率**一、定義與計算****二、核心意義****三、應用場景****四、局限性****五、分類與衍生指標****總結** 2、市銷率**一、定義與計算****二、核心意義****三、優缺點分析****四、適用場景****五、與其他指標的對比****六、實際應用案例…

大語言模型減少幻覺的常見方案

什么是大語言模型的幻覺 大語言模型的幻覺(Hallucination)是指模型在生成文本時,輸出與輸入無關、不符合事實、邏輯錯誤或完全虛構的內容。這種現象主要源于模型基于概率生成文本的本質,其目標是生成語法合理、上下文連貫的文本&…

CSS 美化頁面(四)

一、浮動float屬性 ?屬性值??描述??適用場景?left元素向左浮動,騰出右側空間供其他元素使用,其他內容會圍繞在其右側?。橫向排列元素(如導航菜單)、圖文混排布局?。right元素向右浮動,騰出左側空間供其他元素使…

如何將 .txt 文件轉換成 .md 文件

一、因為有些軟件上傳文件的時候需要 .md 文件,首先在文件所在的目錄中,點擊“查看”,然后勾選上“文件擴展名”,這個時候該目錄下的所有文件都會顯示其文件類型了。 二、這時直接對目標的 .txt 文件進行重命名,把后綴…

C++ 迭代器失效詳解:如何避免 vector 操作中的陷阱

目錄 1. 什么是迭代器失效? 2. 哪些操作會導致迭代器失效? 2.1 vector 的插入操作(push_back, insert) 示例:push_back 導致迭代器失效 如何避免? 2.2 vector 的刪除操作(erase, pop_back&…

(EtherCAT 轉 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP協議互轉工業串口網關

型號 協議轉換通信網關 EtherCAT 轉 EtherNet/IP MS-GW12 概述 MS-GW12 是 EtherCAT 和 EtherNet/IP 協議轉換網關,為用戶提供兩種不同通訊協議的 PLC 進行數據交互的解決方案,可以輕松容易將 EtherNet/IP 網絡接入 EtherCAT 網絡中,方便…

榕壹云酒水定制系統:基于THinKPHP+MySQL+UniApp打造數字化時代的個性化購酒新體驗

數字化浪潮下的酒水定制新機遇 在消費升級與個性化需求崛起的背景下,傳統酒水行業正面臨數字化轉型的迫切需求。為此,我們團隊基于ThinkPHPMySQLUniApp技術棧,開發了一套榕壹云酒水定制系統,旨在通過數字化手段解決消費者個性化購…

GR00T N1:面向通用類人機器人的開放基礎模型

摘要 通用型機器人需要具備多功能的身體和智能的大腦。近年來,類人機器人的發展在構建人類世界中的通用自主性硬件平臺方面展現出巨大潛力。一個經過大量多樣化數據源訓練的機器人基礎模型,對于使機器人能夠推理新情況、穩健處理現實世界的多變性以及快…

WebRTC實時通話EasyRTC嵌入式音視頻通信SDK,構建智慧醫療遠程會診高效方案

一、方案背景 當前醫療領域,醫療資源分布不均問題尤為突出,大城市和發達地區優質醫療資源集中,偏遠地區醫療設施陳舊、人才稀缺,患者難以獲得高質量的醫療服務,制約醫療事業均衡發展。 EasyRTC技術基于WebRTC等先進技…

深入理解主成分分析(PCA):原理、算法與應用

內容摘要 本文深入剖析主成分分析(PCA)技術。介紹其通過正交變換簡化數據維度的核心原理,詳細推導基于最小投影距離和最大投影方差的算法過程,總結算法流程步驟。全面分析PCA的優缺點,并對比其與KPCA的差異。同時闡述…

uniapp-商城-25-頂部模塊高度計算

計算高度: 使用computed進行頂部模塊的計算。 總高度:bartotalHeight log 介紹--收款碼這一條目 也就是上一章節的title的高度計算 bodybarheight。 在該組件中: js部分的代碼: 包含了導出的名字: shop-head…

【MCP】第一篇:MCP協議深度解析——大模型時代的“神經連接層“架構揭秘

【MCP】第一篇:MCP協議深度解析——大模型時代的"神經連接層"架構揭秘 一、什么是MCP?二、為什么需要MCP?三、MCP的架構四、MCP與AI交互的原理4.1 ReAct(Reasoning Acting)模式4.2 Function Calling 模式 五…

李飛飛團隊新作WorldScore:“世界生成”能力迎來統一評測,3D/4D/視頻模型同臺PK

從古老神話中對世界起源的幻想,到如今科學家們在實驗室里對虛擬世界的構建,人類探索世界生成奧秘的腳步從未停歇。如今,隨著人工智能和計算機圖形學的深度融合,我們已站在一個全新的起點,能夠以前所未有的精度和效率去…

[react]Next.js之自適應布局和高清屏幕適配解決方案

序言 閱讀前首先了解即將要用到的兩個包的作用 1.postcss-pxtorem 自動將 CSS 中的 px 單位轉換為 rem 單位按照設計稿尺寸直接寫 px 值,由插件自動計算 rem 值 2.amfe-flexible 動態設置根元素的 font-size(即 1rem 的值)根據設備屏幕寬度和…

C# 如何比較兩個List是否相等?

簡介 在 C# 里&#xff0c;比較兩個 List 是否相等&#xff0c;需要考慮多個方面&#xff0c;例如列表中的元素順序、元素本身是否相等。下面介紹幾種常見的比較方法&#xff1a; 基本類型比較&#xff08;元素順序必須一致&#xff09; var list1 new List<int> { 1…

【技術派后端篇】Redis分布式鎖:原理、實踐與應用

在當今的高并發系統中&#xff0c;分布式鎖是保障數據一致性和系統穩定性的重要手段。今天&#xff0c;我們就來深入探討一下Redis分布式鎖&#xff0c;揭開它神秘的面紗。 1 本地鎖與分布式鎖的區別 在Java開發的早期階段&#xff0c;我們接觸過synchronized和Lock鎖&#x…

奧比中光tof相機開發學習筆記

針對奧比中光 tof相機&#xff0c;官方提供的資料如下ProcessOn Mindmap|思維導圖 Orbbec SDK Python Wrapper基于Orbbec SDK進行設計封裝&#xff0c;主要實現數據流接收&#xff0c;設備指令控制。下面就其開發適配進行如下總結&#xff1a; &#xff08;1&#xff09;系統配…

如何學習嵌入式

寫這個文章是用來學習的,記錄一下我的學習過程。希望我能一直堅持下去,我只是一個小白,只是想好好學習,我知道這會很難&#xff0c;但我還是想去做&#xff01; 本文寫于&#xff1a;2025.04.16 請各位前輩能否給我提點建議&#xff0c;或者學習路線指導一下 STM32單片機學習總…

2025 年藍橋杯 Java B 組真題解析分享

今年是我第二次參加藍橋杯軟件類Java B組的比賽&#xff0c;雖然賽前做了不少準備&#xff0c;但真正坐在考場上時&#xff0c;還是有種熟悉又緊張的感覺。藍橋杯的題目一向以“基礎創新”著稱&#xff0c;今年也不例外&#xff0c;每道題都考驗著我們對算法的理解、代碼實現能…