yue-fang-readfog 

feeds.twtxt.net

No description provided.

基於 Kubernetes 事件驅動的自動縮放
KEDA 是一種基於事件驅動的自動伸縮工具,能夠解決 Kubernetes 原生 HPA 在靈活性和複雜性上的不足。KEDA 支持多種事件源(如 Prometheus、Kafka、RabbitMQ 等),可根據實際需求動態調整 Pod 副本數量,甚至將副本數縮減至 0,從而優化資源利用率並降低成本。通過 ScaledObject 對象,KEDA 能夠靈活配置伸縮策略,快速響應負載變化,實現高效擴展 ⌘ Read more

⤋ Read More

萬字總結 NIO 多路複用技術,深入解析 NIO 的實現原理!
什麼是 NIO NIO 是 Java 提供的一種基於 Channel 和 Buffer 的 IO 操作方式,即:利用內存映射文件方式處理輸入和輸出。NIO 具有更加強大和靈活的 IO 操作能力,提供了非阻塞 IO、多路複用等特性,特別適合需要處理大量連接的網絡編程場景在 JDK1.4 時提出了 NIO(New I/O),在 BIO 模型 (Blocking IO) 的基礎上,增加了 NIO 模型 ⌘ Read more

⤋ Read More

Go 項目開發中,遷移數據庫最佳方案
數據庫遷移是構建和維護 Go 應用的重要環節。它能保持數據庫模式與你的代碼庫同步,處理更新,並確保你的應用在演進過程中始終可靠。選擇合適的遷移工具可以節省時間、減少錯誤,並使部署更加順暢。本文將深入探討適用於 Go 的最佳數據庫遷移工具,通過示例、對比和實用見解,幫助你爲項目挑選合適方案。我曾經歷過手動遷移的繁瑣與模式不匹配的混亂,因此會以易於理解的方式剖析每款工具的優勢、特點和使用場景。讓我們一 ⌘ Read more

⤋ Read More

淺析 rust 大明星 Tokio
Tokio 可以說是 rust 中最熱門的庫,對於異步與併發進行了很好的支持。大多數基於 rust 的開源框架都使用到了 Tokio,因此在介紹這些實現開源框架時經常會被問到:底層的異步和併發是怎麼實現的?我只能回答:底層的異步和併發都是由 Tokio 控制的。這顯然不是一個令人滿意的回答。因此本文章將對於 Tokio 的基本方法和底層邏輯進行分析。概述一句話概括 Tokio 可以理解成一個 “ ⌘ Read more

⤋ Read More

使用 Zig 開發 Nodejs 原生模塊
Node-API[1](前身爲 N-API)是 Nodejs 提供的用於構建原生插件的 API。它獨立於底層 JavaScript 運行時(例如 V8),並作爲 Node.js 自身的一部分進行維護。該 API 在不同版本的 Node.js 中具有穩定的應用二進制接口 (ABI)。其目的是使附加組件不受底層 JavaScript 引擎變化的影響,並允許爲一個主要版本編譯的模塊在以後的主要 Node ⌘ Read more

⤋ Read More

攻克 Linux 內核 Oops:手把手教你從崩潰到破案!
作爲一名長期深耕 Linux 內核開發的博主,在這條探索之路上,我遭遇過無數的挑戰,而 Linux 內核 Oops 問題,絕對是其中讓人最爲頭疼的難題之一。還記得那是一個爲某項目開發定製 Linux 內核模塊的緊張時期,我滿心期待地將新編寫的驅動程序模塊加載到內核中,本以爲一切會順利進行,結果屏幕上突然跳出一大串密密麻麻的 Oops 錯誤信息,系統也陷入了不穩定的狀態。那一刻,我的心瞬間懸了起來, ⌘ Read more

⤋ Read More

如何理解高可用數據複製原理
一談到複製技術, 相信我們大部分都有一個認知, 那就是實現數據存儲的高可用, 其實進行數據複製也不僅僅是實現高可用, 同時也是邊緣加速以及提升讀性能的一個技術手段, 今天我就來講述下複製技術原理, 也是作爲學習過程中的一個筆記記錄. 共享存儲與無共享存儲架構 同樣我們關注一項技術還是需要先了解過往的背景, 現在我們可以先思考下爲什麼數據庫數據需要分佈在多臺機器上呢?首先我們先來看單機的共享內存 ⌘ Read more

⤋ Read More

Linux 內核內存管理:核心技術與優化策略
在 Linux 系統中,內存管理堪稱內核的核心功能之一,其運作機制複雜且精妙。Linux 採用虛擬內存技術,爲進程構建獨立的地址空間,借內存管理單元(MMU)將虛擬地址精準映射至物理地址,既保障進程間內存隔離,又防止相互干擾。物理內存管理上,Linux 以分頁機制爲基,將內存切爲固定大小頁(常見 4KB) ,由夥伴系統算法主導分配與回收。通過合併、分割內存頁,夥伴系統有效減少內存碎片,提升內存利用 ⌘ Read more

⤋ Read More

golang 每日一庫之 Zinx
Zinx 是一個用 Go 語言編寫的輕量級、併發 TCP 服務器框架,旨在幫助初學者深入理解 TCP 服務端開發的核心架構,同時具有生產級特性的模塊化設計 。倉庫地址https://github.com/aceld/zinx設計理念學習導向 :源碼精簡,框架和教程同步開發,分版本迭代,一步步構建功能,降低學習門檻 。 生產適用 :模塊化、擴展性強,已被用於遊戲服務 ⌘ Read more

⤋ Read More

上下文取消鏈:摧毀我們支付系統的 bug
一個看似無害的 Go 語言特性如何引發級聯故障,導致了 110,000 美元的交易損失。警報響起時,我們的支付處理系統已經癱瘓。信用卡交易失敗、訂閱無法續訂、客服聊天窗口被憤怒的消息淹沒。一次常規部署演變成了我們兩年內最嚴重的生產事故。罪魁禍首?對 Go 語言上下文取消的細微誤解,它引發了一連串我從未預料到的反應。背景:一次 “簡單” 的優化三週前,我接到了優化支付處理流程的任務。系統每分鐘處理數 ⌘ Read more

⤋ Read More

Go 定時任務筆記
Go Timer,Ticker,Sleep———————time.Timertime.Timer 是一個單次的定時器,在指定時間後觸發一次後就不再重複。雖然說觸發後不會再次觸發,但資源不會自己就釋放了,需要調用Stop()方法來釋放資源否則還在內存中。在 Timer 結束後可以用Reset()方法重置計時器 (要在 Stop() 之後或未觸發時使用)。基於這種特性 Ti ⌘ Read more

⤋ Read More

從零開始編寫 Mcp Server, 發佈上線,超簡單全網最細
MCP 簡單來說就是 AI 大模型的標準化工具箱。在我們之前的很多期視頻裏面,只是討論瞭如何使用別人已經編寫好的 MCP Server,對接到 AI 客戶端裏面,實現各種智能體與工作流。本期視頻我們轉換到開發者的角度,超簡單,幾分鐘之內編寫一個 MCP Server,並且把它發佈上線,提供給所有人去使用。本期視頻內容較多,並且十分硬核,可以幫助我們從開發者的角度更加深入理解 MCP 協議。在爬爬蝦 ⌘ Read more

⤋ Read More

深入 Biome — 現代 Rust 前端工具鏈
Biome 簡介Biome 是一個基於 Rust 開發的前端工具鏈工具,它提供了完善的 Analyzer / Linter / Formatter 的能力支持。目前 Biome 提供了 JS、TS 、JSON/JSONC 以及 CSS 和 GriftQL 等語言的支持。在 Linter 方面,目前 Biome 內置支持了約 320 條以上規則支持 (參考: https://next.biomejsRead more

⤋ Read More

Golang 裏普通 map 不用鎖,咋解決協程安全?
在 Go 語言開發中,map 是常用的數據結構,但原生 map 在併發讀寫時會導致 panic。這是因爲 Go 的設計哲學是 “顯式優於隱式”,不自動處理併發安全問題,需要開發者根據場景選擇合適的併發控制策略。本文將深入探討三種主流解決方案,並分析它們的適用場景和性能特點。方案一:官方推薦的 sync.Map基本用法sync.Map是 Go 標準庫提供的線程安全 map 實現,適合讀多寫少的場景: ⌘ Read more

⤋ Read More

在 Go 中爲什麼推薦使用空結構體作爲 Context 的 key
使用 Context 進行傳值我們知道 Context 主要有兩種用法,控制鏈路和安全傳值。在此我來演示下如何使用 Context 進行安全傳值:package mainimport (    ”context”    ”fmt”)const requestIdKey = ”request-id”func main() {    ctx := context.Background()    // ⌘ Read more

⤋ Read More

重磅!Qwen3 Embedding 王炸登場,AI 文本理解邁入新紀元!
各位 AI 愛好者、開發者們,準備好了嗎?今天,一個能徹底顛覆你對 AI 文本理解認知的 “王炸” 產品——Qwen3 Embedding 系列模型——正式發佈了!它不僅僅是一個模型,更是一個將帶領我們進入 AI 文本處理新紀元的里程碑!🤯💥 爲什麼說它是 “王炸”?五大亮點讓你不得不服!Qwen3 Embedding 系列模型,作爲 Qwen 家族的最新力作,專爲文本嵌入和排序任務而生,它繼承了 ⌘ Read more

⤋ Read More

glibc 堆內存管理:原理、機制與實戰
在內存管理領域,glibc(GNU C Library)通過 brk 和 mmap 兩大系統調用,構建了一套高效的堆內存管理機制。這種設計大幅減少了系統調用的頻次,顯著提升內存利用率。在 glibc 的管理架構中,堆內存以層級化的方式組織,包含分配區(Arena)、堆(Heap)和內存塊(Chunk)。其中,主 Arena 依賴 brk 系統調用實現內存分配,而子 Arena 則通過 mmap 完 ⌘ Read more

⤋ Read More

使用 dig 查詢 dns 遞歸查詢過程
DNS 查詢過程中如果沒有命中緩存,查詢實際上是一個遞歸過程。DNS 解析工具 dig 提供了 trace 功能,可以展示遞歸查詢的整個過程。以查詢 www.baidu.com 爲例,查詢結果如下:root@ubuntu:~# dig +trace +nodnssec www.baidu.com;; communications error to 114.114.114.114#53: timed ⌘ Read more

⤋ Read More

什麼是 AI 智能體?如何一步步構建屬於你自己的智能體?
什麼是 AI 智能體?下一件大事?Gartner 認爲:AI 智能體(AI Agents)將是未來的關鍵技術。OpenAI、Nvidia 和 Microsoft 正在大力投入,甚至像 Salesforce 這樣在 AI 領域一向低調的公司,也已悄然下注。而毫無疑問,這項技術目前正迅猛崛起。那麼,這一趨勢背後真正的是什麼?理解智能體(Agents)的關鍵在於:自主性(Agency)。不同於傳統的生成 ⌘ Read more

⤋ Read More

Go 項目該擁抱 Monorepo 嗎?Google 經驗、etcd 模式及白盒交付場景下的深度剖析
大家好,我是 Tony Bai。在 Go 語言的生態系統中,我們絕大多數時候接觸到的項目都是遵循 “一個代碼倉庫(Repo),一個 Go 模塊(Module)” 的模式。這種清晰、獨立的組織方式,在很多場景下都運作良好。然而,當我們放眼業界,特別是觀察像 Google 這樣的技術巨頭,或者深入研究 etcd 這類成功的開源項目時,會發現另一種代碼組織策略——Monorepo(單一代碼倉庫)——也在 ⌘ Read more

⤋ Read More

Lucene 最全詳解 -萬字圖文總結-
Lucene 是一個高效的基於 Java 的全文檢索庫,理解 Lucene 原理更容易掌握好 Lucene 搜索,下面我全面來詳解 Lucene@mikechen全文檢索原理——Lucene 是一個高效的基於 Java 的全文檢索庫,所以在瞭解 Lucene 之前要費一番工夫瞭解一下全文檢索,這是 Lucene 原理的核心。全文檢索它的工作原理:就是是計算機索引程序通過掃描文章中的每一個詞 ⌘ Read more

⤋ Read More

一文講透 DMA,超級詳細!!!
嵌入式開發中,DMA 是個繞不開的話題。今天我們不講枯燥的配置步驟,畢竟每個處理器、每個外設的 DMA 實現都不盡相同。我們目標是帶大家搞懂 DMA 的本質、它爲什麼能讓系統更快。數據搬運工的煩惱——–想象一下,你在開發一個數據採集系統,比如一個工業監控設備。核心任務是從 ADC 採集數據,通過 SPI 存到 SD 卡,同時通過 USB 傳到上位機,UART 還得處理一些命令交互。這種場 ⌘ Read more

⤋ Read More

分佈式系統不可靠的網絡問題
在之前我們講述了分佈式系統會出現 partial failures 主要原因是部分組件或者服務發生故障 faults, 其實還存在另一個故障, 即網絡故障. 今天我們來聊下分佈式系統不可靠的網絡問題. 不可靠的網絡問題分類 在前面我們講述了分佈式系統模型, 其中已經對響應結果做出了分析, 這裏我藉助《設計數據密集系統》一張圖來說明下, 總結起來主要有三個方面:請求 / 響應丟失: 數據包可能因 ⌘ Read more

⤋ Read More

golang 每日一庫之 DDD 框架 freedo
Freedom:自由不是亂來,而是架構有道———————你是不是寫 Go 寫得挺開心的,直到有一天產品說: “這個業務流程以後會變、會拆、可能還會上天。”於是你開始發愁:怎麼寫纔不會三個月後改到哭? 怎麼解耦、怎麼擴展、怎麼不踩坑? 這時候,Freedom 躍馬而來,大喊一句: “用我!讓你寫得自由、改得瀟灑、跑得像風!”什麼是 Freedom—– ⌘ Read more

⤋ Read More

別被炒作迷惑!吳恩達告訴你 AI Agent 智能體的真相與誤區
在 AI 領域,炒作往往走在實踐的前面,今年熱議的 AI Agent(智能體)就是這樣一個充滿誤解與過度承諾的熱門概念。吳恩達(Andrew Ng)無疑是人工智能領域最具影響力的人物之一。作爲斯坦福大學教授、Coursera 聯合創始人、百度前首席科學家、AI Fund 創始人,他不僅推動了深度學習的普及,還培養了一代 AI 人才。另一邊,LangChain 作爲當前最流行的大語言模型應用開發框架 ⌘ Read more

⤋ Read More

Vue 團隊正式發佈!未來 Vue 也能寫後端啦!
前言–大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~背景需求—-最近,我遇到了一個需求:有兩個頁面,每個頁面各自連接到一個獨立的WebSocket。這兩個頁面能夠通過WebSocket相互影響。爲了更好地理解需求,以下是兩個頁面的簡化版本:頁面 1 和頁面 2 的需求:頁面 1:當點擊更新按鈕時,頁面 1 的數值加 1,同時頁面 2 的數值變爲頁 ⌘ Read more

⤋ Read More

golang 每日一庫之 GoAdmin
你是不是曾經想用 Go 寫個後臺系統,結果一不小心就寫成了 Bug 系統?是不是寫到權限控制的時候,感覺自己變成了權限受害者?是不是本來想安安心心做個 CRUD 工人,結果被前端 UI 折磨到懷疑人生?別怕,GoAdmin 來拯救你了!什麼是 GoAdmin簡單說,GoAdmin 就是 Go 語言界的 “萬能後臺神器”。它能幫你:三分鐘起飛 :快速搭出一個後臺系統; 一行不寫也 ⌘ Read more

⤋ Read More

分佈式事務的解決方案—Seata TCC 模式
在分佈式事務解決方案中有 Seata AT 模式,但是 AT 模式要求是關係型數據庫(因爲 undolog 表需要和業務保持原子性),此時如果事務中存在非關係型數據庫(如 Redis、ES 等),那麼 AT 模式就無法滿足要求了,如下圖所示:    此時我們就需要 Seata TCC 模式來幫助我們解決這種場景下的分佈式事務問題。1、認識 Seata TCC 模式    TCC(Try-C ⌘ Read more

⤋ Read More

雲原生架構中幾種常用架構模式
基於服務化、彈性擴縮容、可觀測和自動化等設計原則的引入,傳統的應用架構由單體應用逐步向雲原生架構發展。雲原生技術架構迭代逐步演化爲服務化架構、服務網格 Mesh、Serverless 架構、EDA 事件驅動和可觀測等架構模式。本文對這幾種主要的架構模式進行簡要的介紹。1、雲原生架構模式1.1 服務化架構服務化架構的核心在於通過接口契約定義服務單元的功能,實現服務間的高效通信。例如,通過服務接口定義 ⌘ Read more

⤋ Read More

golang 每日一庫之工作流引擎 cadence
Cadence 是由 Uber 開發並開源的分佈式工作流編排引擎,旨在幫助開發者構建可擴展、可靠且具備容錯能力的分佈式應用程序。這個 Uber 當前給我發了好多打車券,還是很厚道的。特點–1. 容錯的有狀態工作流Cadence 的工作流是 “容錯的有狀態工作流”,即使在進程崩潰或服務重啓的情況下,工作流的狀態(包括局部變量、調用棧、定時器等)也能自動恢復,確保業務流程不中斷。2. 異步任務與自動 ⌘ Read more

⤋ Read More

用 Go 語言實現用戶一鍵登錄,有哪些可靠的方案
一鍵登錄是現代應用中提升用戶體驗的關鍵功能,本文將深入探討 Go 語言實現一鍵登錄的幾種可靠方案,並提供完整的代碼實現和對比分析。方案一:短信驗證碼登錄(最常用)實現原理用戶輸入手機號 服務器發送短信驗證碼 用戶輸入驗證碼完成登錄 完整代碼實現package mainimport(“crypto/rand”“fmt”“math/big”“net/http”“time”“githu ⌘ Read more

⤋ Read More

RabbitMQ 的架構設計
Kafka、RocketMq、ActiveMQ、RabbitMQ 和 Apache Pulsar 都是現在使用的比較多的主流 MQ,下面我們來介紹 RabbitMQ 的架構設計。    RabbitMQ 使用 Erlang 語言開發消息隊列系統,基於 AMQP 協議(高級消息隊列協議)實現的一個開源的消息中間件,它允許應用程序之間進行異步通信,並且 RabbitMQ 提供了一種高效、可擴展 ⌘ Read more

⤋ Read More

sglang 最佳實踐
自從 deepseek 研發團隊推薦使用 sglang 部署 R1,就開始慢慢的關注 sglang。大模型的推理框架很多,企業級中 vllm 已經成爲實際的工業標準,其他框架多多少少會參考 vllm;sglang 作爲同是伯克利大學出品也越來越凸顯出來,tensorRT-LLM 由於對於 gpu 的深度綁定,一般的廠商不會採用。ollama,llama.cpp 在整體性能上像是一個單機個人玩家,不 ⌘ Read more

⤋ Read More

理清 Mysql 的行鎖、意向鎖、記錄鎖、間隙鎖和臨鍵鎖
在日常開發工作中,Mysql 是常用的數據庫之一,突然某天 Mysql 數據庫告警提示出現了死鎖問題,爲了解決死鎖問題,我們就需要掌握一些關於 Mysql 的鎖的知識。1、行鎖    在 InnoDB 存儲引擎中行級鎖每次操作鎖住對應的行數據,鎖定粒度最小,發生鎖衝突的概率最低,併發度最高。InnoDB 的數據是基於索引組織的,行鎖是通過對索引上的索引項加鎖來實現的,而不是對記錄加的鎖。在 ⌘ Read more

⤋ Read More

分佈式事務解決方案—事務消息
普通消息難以保證生產者的事務操作與消息發送的原子性,所以可能會導致數據不一致;RocketMQ 提供了一種在普通消息基礎上支持二階段的提交能力事務消息,事務消息可以支持在分佈式場景下保障消息生產和本地事務的最終一致性。1、事務消息基本概念(1)半消息     生產者發送的消息首先作爲 “半消息” 存儲在 Broker 中,對消費者不可見。Broker 等待生產者確認消息狀態(提交或回滾), ⌘ Read more

⤋ Read More

分佈式事務的解決方案—Seata AT 模式
Seata 是一款開源的分佈式事務解決方案的框架,它致力於在微服務架構下提供高性能和簡單易用的分佈式事務服務,Seata 爲用戶提供了 AT、TCC、SAGA 和 XA 事務模式。其中 AT 模式(auto transaction)是一種無侵入的分佈式事務解決方案,AT 模式的核心思想是基於二階段提交實現的。1、二階段提交    兩階段提交協議 (Two-Phase Commit,2PC) ⌘ Read more

⤋ Read More

高併發場景下,Nginx 如何限流應對併發?
在很多大流量高併發的場景,如果用戶併發量很高就會出現宕機的局面,所以這個時候都會涉及到限流 @mikechen高併發限流限流是一種流量控制機制,用於限制客戶端對服務器的請求速率、或併發連接數。通過限流,可以保護服務器免受過多請求的影響,防止因請求過載而導致系統性能下降、或崩潰。限流能過濾掉惡意請求、和非正常流量,防止瞬時流量激增對後端應用或數據庫造成衝擊,確保系統整體穩定性。比如:防止拒絕服務攻擊 ⌘ Read more

⤋ Read More

RAG 技術全解析:從基礎原理到優化實戰
你瞭解 RAG 嗎?,下面這些問題你是否能回答上來呢?什麼是 RAG(RAG 的流程是什麼),爲什麼需要 RAG? 如何對文檔分塊(Chunking)?分塊大小如何選擇? 檢索時如何計算相似度?餘弦相似度有什麼缺點? 如何優化 RAG 流程? 什麼是 Re-rank?如何重排序? 什麼是 GraphRAG? 如何評估 RAG 系統的效果? RAG 有哪些缺 ⌘ Read more

⤋ Read More

golang 每日一庫之工作流引擎 Temporal
Temporal 是一個開源的分佈式工作流編排系統,旨在簡化構建和運行可靠、可擴展的長時間運行的後端應用程序。它最初是由 Uber 的 Cadence 系統演變而來,現在由 Temporal Technologies 公司主導開發。目前已被 Coinbase、Netflix、Box、Snap 等大規模應用。核心功能—-1. 分佈式工作流編排Temporal 支持在多臺機器上協調執行復雜的業務邏 ⌘ Read more

⤋ Read More

怎麼樣把 Image 圖片通過 MQTT 協議進行發送和接收?
MQTT 是一種輕量級發佈 / 訂閱消息的協議,通常用於具有小型的物聯網設備。消息中通常不會包含太多數據,只是傳感器值。但是大多數情況下,MQTT 消息負載是文本,可能是少量文本或 JSON 數據負載。不過,設備如何在 MQTT 消息中發送文件,例如 Image 圖片. jpg 格式文件呢?這期我們通過整理網上的資料,把具體的方式分享給大家!使用 MQTT 協議發佈圖像————– ⌘ Read more

⤋ Read More

分佈式系統不可靠時鐘問題
今天我同樣結合《設計數據密集系統》來聊分佈式系統另外一個話題, 即分佈式系統的不可靠時鐘問題. 同步網絡與異步網絡時鐘對比在前面我們講述了分佈式系統網絡不可靠的原因是由於我們數據中心服務通信採用的是異步網絡實現, 同樣地我們來看爲什麼同步與異步網絡在時鐘上也存在差異呢? 對此我們可以先看下面同步與異步網絡在時鐘控制上的差異:通過上述我們可以清晰地知道:同步網絡存在全局時鐘控制, 異步網絡中每個節 ⌘ Read more

⤋ Read More

MCP 安全檢查清單:AI ⼯具⽣態系統安全指南
背景本安全檢查清單由 @SlowMistTeam 編寫並維護。慢霧科技作爲全球領先的區塊鏈生態威脅情報公司,旨在幫助區塊鏈生態與 AI 生態相融合的過程中擁有更加深度的安全防護能力及保護用戶擁有更高的隱私性。 感謝 FENZ.AI 傾力相助。FENZ.AI 以未來科技重塑 AI 安全審計。從 MCP 攻擊檢測到 AI 忠誠度評估, Fenz 正在構建 AI 時代的基礎設施——“超級智能,始於 ⌘ Read more

⤋ Read More

nginx 代理 WebSocket
配置–HTTP/1.1 協議中 Upgrade 機制可以將 http 升級到 WebSocket,實現客戶端與服務端的雙向通訊。客戶端需要升級協議時在請求頭包含 Upgrade、Connection 字段。如果服務端同意升級連接,就會返回 101 狀態碼和一個 Upgrade 標頭字段,Upgrade 字段內容爲要切換到的協議。如果服務器不能升級連接,返回一個常規響應,如 200 ok。ngin ⌘ Read more

⤋ Read More

兩分鐘實現一個 chrome 插件
放在以前,2 分鐘寫一個 chrome 插件是想都不敢想,但是今天,通過 ai 賦能,我們可以很容易的就實現了。效果圖—用戶可以設置最大的標籤頁數量和超出數量的管理策略,來管理 chrome 當前窗口的標籤頁。需求場景—-在公司辦公的時候,一個 chrome 頁面,不斷的新開標籤頁,標籤頁越來越多,最後直接都找不到之前想要找到的標籤頁了。所以可以通過這種標籤頁管理插件來管理自己當前的瀏覽器 ⌘ Read more

⤋ Read More

Golang 字符串拼接 6 種方法性能對比與最佳實踐
在 Go 語言中,字符串 (string) 是不可變 (immutable) 的數據類型,這意味着每次字符串拼接操作實際上都會創建一個新的字符串對象。對於需要頻繁拼接字符串的場景,選擇合適的方法對性能有顯著影響。本文將全面分析 6 種常見的字符串拼接方式,並通過基準測試揭示它們的性能差異。6 種字符串拼接方法詳解1. 直接使用+運算符funcconcatOperator(s string, n i ⌘ Read more

⤋ Read More

Go 語言 fsm 源碼解讀,這一次讓你徹底學會有限狀態機
我在文章《在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題》中講解了有限狀態機的概念,並介紹了 Go 中有限狀態機 fsm 包的使用。本篇文章,我將更進一步,直接通過解讀源碼的方式,讓你深刻理解 fsm 是如何實現的,這一次你將徹底掌握有限狀態機。源碼解讀廢話不多說,我們直接上代碼。結構體首先 fsm 包定義了一個結構體 FSM 用來表示狀態機。 https://github.com/lRead more

⤋ Read More

分佈式存儲技術最全詳解 -圖文全面總結-
大家好,我是 mikechen 睿哥。分佈式存儲技術是大型架構的基石,下面我重點詳解分佈式存儲技術 @mikechen分佈式文件存儲隨着互聯網、大數據、雲計算和人工智能等技術的發展,數據量呈爆炸式增長。傳統的文件存儲方式,難以滿足日益增長的存儲需求,它們通常面臨擴展性差、單點故障、性能瓶頸等問題。分佈式文件存儲應運而生,它通過將文件數據分割成小塊,並存儲在集羣中的多臺機器上。從而實現了海量數據的存 ⌘ Read more

⤋ Read More

golang 基礎之 errgroup
Golang 的擴展併發庫 golang.org/x/sync/errgroup 提供了對多協程任務進行管理和錯誤處理的便利功能。與基礎的 sync.WaitGroup 相比,errgroup.Group 在等待所有任務完成的同時,還會自動捕獲第一個非 nil 錯誤並返回。如果通過 WithContext 創建 Group,當任一子任務返回錯誤時,errgroup 會取消關聯的 Context,從 ⌘ Read more

⤋ Read More

負載均衡—會話保持技術詳解
一、會話保持的定義會話保持(Session Persistence)是一種負載均衡策略,其核心機制是確保來自同一客戶端的連續請求,在特定週期內被定向到同一臺後端服務器進行處理。這種機制通過記錄和識別客戶端的特定標識信息,打破負載均衡器隨機分配請求的常規邏輯,實現請求處理的持續性與穩定性。二、會話保持的核心作用在分佈式服務器架構中,當客戶端與服務器建立交互時,例如用戶登錄服務器 A 完成身份驗證後, ⌘ Read more

⤋ Read More

golang 每日一庫之 bsm-redislock
bsm/redislock 是一個用於 在 Go 語言中實現基於 Redis 的分佈式鎖(distributed lock) 的開源庫,由 bsm 組織開發和維護。它實現了基於 Redis 的 SET NX PX 命令模式的分佈式鎖,兼容 Redlock 算法的核心思想,但更簡單和輕量。簡介–基於 Redis 單實例實現分佈式鎖 遵循 Redis 官方推薦的 SET resource-na ⌘ Read more

⤋ Read More

go 實現 - 性能逆天又免費的 IoT 開發神器 —
它解決了什麼痛點? 物聯網的開發往往讓人抓狂——設備協議不兼容、數據格式亂七八糟、傳輸不穩定,還得擔心安全問題和擴展性。Magistrala IoT 平臺正是以此爲背景,爲開發者打造了一個安全、高效、兼容性強且高度擴展的免費開源平臺,讓設備溝通、數據管理變得簡單可靠,從而輕鬆實現規模化部署。Magistrala IoT 是什麼? Magistrala IoT(由 Abstract Machin ⌘ Read more

⤋ Read More

golang 每日一庫之 goflow
goflow 是一個基於 Go 語言的高性能、可擴展、分佈式的工作流框架。它允許開發者以編程方式將分佈式工作流定義爲任務的有向無環圖(DAG),並通過多個工作節點(Worker)均勻分配負載來執行任務。核心特性—-1. DAG 構建與任務編排goflow 允許用戶以 DAG 的形式定義工作流,每個節點代表一個任務,邊表示任務之間的依賴關係。這種結構使得任務的執行順序清晰,便於管理複雜的工作流程 ⌘ Read more

⤋ Read More

負載均衡架構模式詳解 -圖文全面總結-
大家好,我是 mikechen 睿哥。負載均衡是大型架構的必備中間件,下面我重點來詳解負載均衡架構模式 @mikechen四層負載均衡四層負載均衡工作在 OSI 的傳輸層,基於 TCP/UDP 協議頭信息(如 :IP 地址、端口)進行請求轉發。負載均衡器:充當客戶端和後端服務器之間的中間人。接收客戶端的 TCP 或 UDP 連接請求,並根據配置的策略將這些連接轉發給後端的某個可用服務器。典型實現包 ⌘ Read more

⤋ Read More

如何構建故障容忍的分佈式系統
在前面我們講述基於資源利用率以及成本的權衡, 大部分情況下將會採用廉價且不可靠的組件來構建我們的分佈式系統, 比如異步網絡模型的無界延遲、時鐘漂移以及進程暫停是現實中存在且不可避免的問題, 那麼在實踐中是如何去構建一個故障容忍的分佈式系統呢? 今天聊聊我的思考. Fencing Tokens 案例 這裏我舉一個在上一篇中我們談到獲取租約 ID 的例子, 其中由於發生 STW 導致寫入同一份 ⌘ Read more

⤋ Read More

一文讀懂 K8S StatefulSet 原理
爲什麼需要 StatefulSet在使用 Kubernetes 部署服務時,通常會選擇 Deployment 資源對象。由 Deployment 創建的 Pod 實例是完全相同的,它們在啓動時沒有順序要求,並且通常掛載相同的存儲卷。因此,客戶端訪問任意一個 Pod,返回的結果是一致的。這類服務被稱爲 無狀態服務。然而,如果嘗試使用 Deployment 部署如 MySQL、Redis 等數據庫服務 ⌘ Read more

⤋ Read More

nginx 圖形化監測工具
安裝 ngxhttpstubstatusmodule 模塊 詳細參考 nginx 實時連接狀態監測 第一部分 安裝 php 處理程序 # 安裝php-fpm yum install php php-gd php-soap php-mbstring php-xmlrpc php-dom php-fpm -y # 修改fpm配置文件,監聽9 ⌘ Read more

⤋ Read More

nginx 中配置端口轉發 TCP-UDP 流量
ngxstreamcoremodule 模塊從 1.9.0 版本開始出現,默認不包含此模塊,需要通過–with-stream配置。這個模塊可用於 TCP/UDP 流量轉發,和實現負載均衡,配置示例:workerprocesses  1;events {    workerconnections  1024;}stream {代理SSH連接 server {    listen 10022; ⌘ Read more

⤋ Read More

TypeScript 推出原生 Go 編譯器,速度提升 10 倍
微軟 TypeScript 宣佈推出 TypeScript Native 原生預覽版,使用原生語言 Go 重寫編譯器,替代原有 Node.js 版的編譯器,編譯速性能高達到了 10 倍以上。TypeScript 相當於 JavaScript 的超集,加入了靜態類型檢查,大大提高了代碼安全和可維護性,現在很多桌面應用都是用 TypeScript 開發的,包括 VScode。隨着很多項目都是雲原生、A ⌘ Read more

⤋ Read More

nginx 還能修改 http 響應體內容
ngxhttpsubmodule模塊可以通過字符串替換的方式修改響應體內容。默認未安裝,需要在 configure 階段指定–with-httpsubmodule參數。 subfilter指令用於替換響應內容,語法格式爲subfilter string replacement,string 表示被替換內容,replacement 爲替換後的內容。可配置在http, server, loca ⌘ Read more

⤋ Read More

golang 每日一庫之 go-workflow
go-workflow 是一個基於 Go 語言開發的超輕量級工作流引擎,設計靈感來源於 Java 的 Activiti,但進行了深度簡化和解耦,特別適用於微服務架構下的流程控制需求。特點微服務架構友好 :go-workflow 僅關注流程流轉邏輯,完全解耦用戶、組織等業務數據,便於與各類系統集成。 JSON 流程定義 :採用 JSON 數組替代傳統的 BPMN 模 ⌘ Read more

⤋ Read More

如何理解高可用架構設計原理
在分佈式系統中最重要的抽象概念之一是共識, 即在網絡、進程故障等情況下, 讓所有非故障節點在某一件事情上達成一致. 那麼在實現共識的過程中, 我們就需要在理論與實踐中去發現哪些可行, 哪些不可行. 對此我們需要了解什麼是分佈式一致性, 它和我們構建一個高可用系統架構有什麼關聯? 同樣今天來談談自己的思考. 高可用原理本質 一談到高可用架構設計, 想必我們都會想到採用 “冗餘” 來實現高可用. ⌘ Read more

⤋ Read More

MCP 最新企業級權限認證方案,STDIO-SSE 不同實現詳解!
在做 MCP 企業級方案落地時, 我們可能不想讓沒有權限的人訪問 MCP Server, 或者需要根據不同的用戶返回不同的數據, 這裏就涉及到 MCP Server 授權操作。那 MCP Server 有 2 種傳輸方式, 實現起來不一樣:STDIO—–這種方式在本地運行, 它 將 MCP Server 作爲子進程啓動。 我們稱爲標準輸入輸出, 其實就是利用運行命令的方式寫入和讀取控制檯的信 ⌘ Read more

⤋ Read More

golang 開發 OA 系統,工作流引擎選型
我想開發一套企業內部使用 OA 系統,使用 golang gin 開發,讓 AI 推薦了幾個流程管理的庫,即工作流引擎。發現大部分找到的都是 Java Sprint Boot 的實現,但是我還是希望用 golang gin 去實現。畢竟 golang gin 目前用的最順手,也積累了大量的內部功能庫,而且服務器資源佔用低。加上是集團內幾個公司一塊使用,使用現成的開源實現,也達不到要求,估計也很難改 ⌘ Read more

⤋ Read More

ZooKeeper 實現分佈式鎖
基礎–ZooKeeper 的 4 個節點持久節點:默認的節點類型,一直存在於 ZooKeeper 中 持久順序節點:在創建節點時,ZooKeeper 根據節點創建的時間順序對節點進行編號 臨時節點:當客戶端與 ZooKeeper 斷開連接後,該進程創建的臨時節點就會被刪除 臨時順序節點:按時間順序編號的臨時節點 ZK 分佈式鎖相關基礎知識zk 分佈式鎖一般由多個節點構成( ⌘ Read more

⤋ Read More

MCP Server 的五種主流架構與 Nacos 的選擇
在 AI 大模型應用爆發的今天,Model Context Protocol (MCP) 作爲連接 AI 大模型與應用的關鍵協議,正在快速普及。然而,如何在企業級環境中高效部署和管理 MCP 服務,成爲技術團隊面臨的重要挑戰。本文將深入剖析 MCP Server 的五種主流架構模式,並結合 Nacos 服務治理框架,爲企業級 MCP 部署提供實用指南。MCP 架構的演進與挑戰MCP 協議爲 AI ⌘ Read more

⤋ Read More

一文讀懂 K8S Service 原理
概述在 K8S 集羣中, K8S 會給每一個 Pod 分配一個 podIP,默認網絡模式下,這個 podIP 是隨機分配的虛擬 IP,且該 podIP 會由於 Pod 重啓而自動更新,那麼客戶端訪問 Pod 時,必然要更新訪問地址。另一方面如果一個服務由多個 Pod 實例負載均衡提供服務,那麼在客戶端側實現負載均衡訪問也不合理。基於以上兩個問題,K8S 實現了 Service,Service 也是 ⌘ Read more

⤋ Read More

不會吧?你還在手動編輯 ~–ssh-config?
一個簡單高效的 SSH 和 Kuberenetes 連接管理工具在實際工作中經常需要遠程服務器和 Kubernetes,對於我這種 CLI 選手,不太喜歡一些圖形化工具,尤其是工具之間會有不兼容和遷移成本的問題。但當服務器和集羣的數量多了之後,通過編輯文本的方式管理連接信息,非常不方便且容易出錯。所以,我打造了 ConfigForge,一個專爲 macOS 用戶設計的開源 SSH 和 Kubern ⌘ Read more

⤋ Read More

大模型瀏覽器自動化工具 brower-use
簡介Browser-Use Web UI 是大模型的瀏覽器自動化利器,其作用是提供了大模型和瀏覽器之間的交互方式,manus 等大多也能看到他的影子工作原理brower-use 執行主要分成以下幾步┌────────────┐    狀態提示詞    ┌───────────┐│            │ ─────────────── │           ││  瀏覽器環境  │ ⌘ Read more

⤋ Read More

RocketMQ 高級使用
消息存儲—-分佈式隊列因爲有高可靠性的要求,所以數據要進行持久化存儲。消息生成者發送消息 MQ 收到消息,將消息進行持久化,在存儲中新增一條記錄 返回 ACK 給生產者 MQ push 消息給對應的消費者,然後等待消費者返回 ACK 如果消息消費者在指定時間內成功返回 ack,那麼 MQ 認爲消息消費成功,在存儲中刪除消息,即執行第 6 步;如果 MQ 在指定時間內沒有 ⌘ Read more

⤋ Read More

Cursor - 12306 MCP,打造 AI 智能選票系統,超酷的!
大家好,我是蒼何。昨天線下活動見了米尼的孩子,說句實在的,勾起了我對家裏娃的想念。於是,我決定端午,我要回家,我要陪過度六一。掏出手機 12306,查票、候補、買票。開始計算着出發時間,到達家的時間,選擇高鐵還是硬臥,早上 6 點的車能否趕上,晚上十一點的車到家太晚會吵醒孩子,中午的車正好但往往沒票。。。。受夠了,每次都是這樣,買個票,能把我瞬間變成一隻哈巴狗,咧着嘴,大聲喘氣。於是,我想借助 A ⌘ Read more

⤋ Read More

golang 每日一庫之 redsync
redsync 是一個用 Go 編寫的分佈式互斥鎖(Distributed Mutex)庫,基於 Redis 實現。其主要目標是在分佈式系統中爲多個進程或服務之間提供互斥訪問的機制,確保同一時間內只有一個客戶端可以訪問共享資源。核心功能—-redsync 實現了 Redlock 算法(由 Redis 創始人 antirez 提出),該算法旨在在分佈式環境中實現安全、健壯的鎖。基本原理使用多個獨 ⌘ Read more

⤋ Read More

golang gin 基於 Casbin 實現權限控制
最近在使用 golang gin 開發一套公司內部的人事管理系統,但是發現權限管理比之前搞的系統要複雜不少, 所以我想借機瞭解一下傳說中的 Casbin 權限控制庫,看看是否可以借鑑一下。涉及權限控制的需求場景———–人事部門負責人需要能看到所有的人事數據 人事部門的普通 HR,只能看到部分部門的人事數據。即只能看到自己負責的部門數據 IT 部門或者行政部門指定人員,能看 ⌘ Read more

⤋ Read More

MarkItDown MCP:一鍵轉換 pdf-word-ppt-html 等文檔爲 MarkDown 格式
簡單介紹---- markitdown-mcp 包提供了一個輕量級的 STDIO 和 SSE MCP 服務器,用於調用 MarkItDown。 它公開了一個工具: converttomarkdown(uri) ,其中 uri 可以是任何 http: 、 https: 、 file: 或 data: URI 。Installation 安裝—————如遇到安裝失敗的問題, ⌘ Read more

⤋ Read More

費時一個多月終於使用 Session 實現了二維碼掃碼登錄功能
我終於完成了二維碼掃碼登錄功能,這個功能開發斷斷續續的用了我一個多月的空閒時間,其中 cookie 回寫和 session 同步就佔了 20 多天,開發有多痛苦,完成後就有多喜悅,。二維碼掃碼登錄是一種常見的無密碼認證方式,它的實現原理非常簡單:第一步在服務器生成一個唯一二維碼 ID 和對應的隨機 token,返回給 Web 網頁並生成二維碼,第二步用戶使用手機 APP 掃描二維碼,然後將用戶信息 ⌘ Read more

⤋ Read More

Ollama-OCR:基於 Ollama 多模態大模型的端到端文檔解析和處理
基本介紹Ollama-OCR 是一個 Python 的 OCR 解析庫,結合了 Ollama 的模型能力,可以直接處理 PDF 文件無需額外轉換,輕鬆從掃描版或原生 PDF 文檔中提取文本和數據。根據使用的視覺模型和自定義提示詞,Ollama-OCR 可支持多種語言,並且能把文檔轉換爲特定的格式進行輸出。支持多種視覺模型———–可以從 Ollama 上選擇最新的視覺模型: ● gem ⌘ Read more

⤋ Read More

支付寶證書原理和使用 Golang 集成
支付寶證書驗證機制是保障交易安全的核心環節,主要是基於 PKI(公鑰基礎設施)體系構建。其驗證流程包含以下幾個關鍵部分:1,證書體系支付寶使用兩套證書,應用證書和支付寶根證書。應用證書由開發者上傳到支付寶開放平臺,支付寶根證書用於驗證支付寶返回數據的真實性。2,簽名驗證流程請求時,開發者使用私鑰對請求參數簽名,支付寶使用應用公鑰驗證。響應時,支付寶使用私鑰對返回數據簽名,開發者使用支付寶公鑰驗證。 ⌘ Read more

⤋ Read More

內網穿透系列四:基於 SSH 隧道技術實現的內網穿透工具 Serveo
一、簡介—-• Serveo 是一個免費的 SSH 隧道服務,允許用戶將本地服務器暴露到互聯網上 • 幾乎無需安裝任何軟件,也無需複雜配置,只需通過 SSH 連接即可實現端口轉發 • 支持所有基於 TCP 的通信協議,包括:SSH/HTTP/HTTPS 等等 • 官網地址參考:https://serveo.net/,工作原理示意圖如下 二、安裝準備—– ⌘ Read more

⤋ Read More

一文掌握常見的限流算法:計數器、漏桶、令牌桶等
限流(Rate Limiting),也稱流量控制。是指系統在面臨高併發,或者大流量請求的情況下,限制新的請求對系統的訪問,從而保證系統的穩定性。限流會導致部分用戶請求處理不及時或者被拒,這就影響了用戶體驗。所以一般需要在系統穩定和用戶體驗之間平衡一下。常見的限流算法包括固定窗口計數器算法、滑動窗口計數器算法、漏桶算法、令牌桶算法、基於用戶的限流和動態限流。其中固定窗口計數器算法、滑動窗口計數器算法 ⌘ Read more

⤋ Read More

微服務架構:必懂的 5 種設計模式
1. Database per Service (每個服務一個數據庫)目標 / 目的實現微服務之間的松耦合。 增強服務的獨立性、可伸縮性和數據封裝。 關鍵概念 / 工作方式每個微服務管理自己的私有數據庫。 數據庫只能由擁有該服務的服務訪問。 強制執行清晰的邊界並促進單一職責原則。 數據隔離 減少服務之間的依賴。 技術靈活性 服務可以使 ⌘ Read more

⤋ Read More

Golang 接口加鎖與數據庫事務的重要性:從紅包漏洞看系統安全
在分佈式系統和高併發場景中,接口加鎖和數據庫事務處理是保障數據一致性和系統安全的關鍵機制。本文將通過一個真實的紅包系統漏洞案例,探討 Golang 中接口加鎖的實現方式、數據庫事務的正確使用方法,以及忽視這些機制可能帶來的嚴重後果。一、Golang 接口加鎖機制爲什麼需要接口加鎖?在高併發場景下,多個請求可能同時訪問通過一個資源(如用戶賬戶餘額),如果沒有適當的鎖機制,會導致競態條件,造成數據不一 ⌘ Read more

⤋ Read More

戰鬥系統:事件系統設計
稍有點項目經驗的讀者,想必對事件都不陌生,本篇就和大家分享一下游戲中的事件處理。閱讀提醒:本篇不會講觀察者模式和發佈訂閱模式的基本概念,若尚不瞭解,建議先簡單瞭解一下。 本文字數較多,若想有所得,還需仔細閱讀。 遊戲事件的分類    遊戲中的事件,作者將它們劃爲三類:UI 事件(輸入事件) 養成系統事件(數據變化事件) World 模擬事件(以戰鬥和 AI 爲主) ⌘ Read more

⤋ Read More

在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題
在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。有限狀態機在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghushinian/blog-go-example/blob/main/fsm/main.gopackage mainimpRead more

⤋ Read More

用 Cherry 替代 Manus,AI 調用多個 MCP 在本地處理 Excel 生成可視化報告文件
Manus 在 agent 領域可謂「炙手可熱」,但受限於網絡以及少得可憐的積分,很多人還是無法用得上。AI Agent 的處理邏輯:無非就是用 AI 根據用戶需求,規劃好要做的事後,不斷的調用不同的工具來實現。有了這個邏輯,我們就知道想要實現某個場景下的需求,只需要找到不同工具的組合給 AI 調用就可以了。而工具方面,各種 MCP 已經成熟了,可以在 AI 對話中直接調用。那豈不是我們自己在本地 ⌘ Read more

⤋ Read More

一文搞懂大模型的向量化(Embedding)
今天來聊一聊 BERT 和 GPT 的向量化,從而瞭解大模型的第二步:Embedding。Embedding(嵌入)是大語言模型(如 BERT 和 GPT)的核心組件,其作用是將人類語言轉換爲機器能理解的數值向量。這一過程類似於爲每個詞、子詞或符號賦予一個 “數字身份證”,使得模型能夠捕捉語義信息,讓相似的詞(如 “快樂” 和“高興”)在向量空間中距離更近。一、BERT(Token + Segme ⌘ Read more

⤋ Read More

一文了解 JWT Token
在實際開發中,使用令牌認證,還有其他很多好處。掌握令牌認證的原理和實現方法,是 Go 語言開發者,必備的核心技能之一。由於 miniblog 使用 JWT Token 進行身份認證,爲了降低學習難度併爲後續代碼實現奠定基礎,本節課將介紹 JWT 的核心內容。JWT 認證流程——–學習 JWT 的最佳方式是通過其認證流程理解其原理。認證流程如下圖所示。上圖展示了 JWT 的認證流程,具體流 ⌘ Read more

⤋ Read More

一分鐘閱讀:接口高可用整體框架
接口高可用整體框架————-接口高可用架構的本質是 “ 丟車保帥 ” 策略,在系統面臨壓力時,業務或用戶體驗會部分有損,但能保證核心功能正常運行。接口高可用主要應對兩種效應:雪崩效應(請求量超過系統處理能力導致系統性能螺旋快速下降)和鏈式效應(某個故障引起後續一連串的故障)。接口高可用的四大核心技術包括:限流、排隊、降級和熔斷。其中限流和排隊主要用於防止雪崩效應,而降級和熔斷則主要 ⌘ Read more

⤋ Read More

API 設計的 “Go 境界”:Go 團隊設計 MCP SDK 過程中的取捨與思考
大家好,我是 Tony Bai。作爲開發者,我們每天都在與 API 打交道——調用它們,設計它們,有時也會爲糟糕的 API 設計而頭痛不已。一個優秀的 API,如同一位技藝精湛的嚮導,能清晰、高效地引領我們通往復雜功能的彼岸;而一個蹩腳的 API,則可能像一座佈滿陷阱的迷宮,讓我們步履維艱。那麼,在 Go 語言的世界裏,一個 “好” 的 API 應該是什麼樣子的?它應該如何體現 Go 語言簡潔、高 ⌘ Read more

⤋ Read More

tokio-mpmc:高性能異步多生產者多消費者隊列
tokio-mpmc 是一個基於 Tokio 異步運行時的高性能多生產者多消費者隊列實現,專爲異步 Rust 應用提供高效的數據傳遞機制。本文將深入淺出地介紹其架構設計、工作原理和使用方法。設計背景在異步編程中,特別是構建高性能併發系統時,任務間的數據傳遞是核心問題。雖然 Rust 生態中已有多種隊列實現(如 std::sync::mpsc、tokio::sync::mpsc、tokio::syn ⌘ Read more

⤋ Read More

自制 ResponseWriter:Go 安全 HTTP
Go 的 http.ResponseWriter 會直接向套接字(socket)寫入數據,這可能會導致一些隱蔽的 bug,例如忘記設置狀態碼,或是在爲時已晚的時候意外修改了響應頭(header)。本文將展示如何通過包裝 ResponseWriter 來強制執行自定義規則,例如要求 WriteHeader() 以及在出錯後阻止寫入操作,從而讓你的處理器(handler)更安全、也更易於梳理邏輯。我用 ⌘ Read more

⤋ Read More

Go 語言實現優雅關機和重啓的示例很詳細
在生產環境中,服務的更新和維護是不可避免的。粗暴地終止服務會導致:正在處理的請求被中斷 數據庫事務未完成 緩存數據丟失 客戶端連接異常 本文將深入探討如何使用 Go 語言實現:優雅關機 :等待現有請求完成後再關閉服務 優雅重啓 :無縫切換新舊進程,實現零停機更新 優雅關機實現核心機制完整實現代碼package mainimport(” ⌘ Read more

⤋ Read More

業務冪等性技術架構體系
現如今很多系統都會基於分佈式或微服務思想完成對系統的架構設計。那麼在這一個系統中,就會存在若干個微服務,而且服務間也會產生相互通信調用。那麼既然產生了服務調用,就必然會存在服務調用延遲或失敗的問題。當出現這種問題,服務端會進行重試等操作或客戶端有可能會進行多次點擊提交。如果這樣請求多次的話,那最終處理的數據結果就一定要保證統一,如支付場景。此時就需要通過保證業務冪等性方案來完成   冪等性不 ⌘ Read more

⤋ Read More

Gin 服務性能提升的最佳實踐
Gin 框架是在 Go 中構建網絡服務的首選。隨着應用程序複雜性和流量的增加,性能成爲不能忽視的因素。本文將介紹一系列使用 Gin 構建服務的有效技巧,涵蓋從路由優化到內存重用、請求和響應優化、異步處理以及性能分析,幫助你創建更穩定高效的 Web 服務。路由註冊優化:避免循環引用————-Gin 的路由器使用基於樹的高效路由實現,可以快速匹配請求路徑。但是,如果路由註冊不當,例如嵌 ⌘ Read more

⤋ Read More

100 萬的併發,如何設計一個商品搜索系統?
前言–大家好,我是田螺。今天我們來看一道比較有深度的面試題:百萬併發下,商品搜索系統,你如何設計呢? 假設場景:某電商平臺大促期間,需支撐每秒 100 萬次的商品搜索請求,要求響應時間≤200ms,同時應對商品數據量超 10 億條。假設給你來做系統設計,怎麼做呢?如果是我來回答面試官這道題的話,我會按照這些思路來跟面試官闡述:爲什麼不能用 MySQL 的 llike? 總體架構設計 ⌘ Read more

⤋ Read More

自己寫一個分佈式定時任務框架 - 負載均衡 - OpenAPI 異步調用!
項目背景目前的定時任務框架已經很成熟,從 QuartZ 到 xxl-job,再到近幾年出現的 PowerJob,既然有這麼多的好的實現,爲什麼還是選擇重寫一個定時任務框架呢?開發中遇到這樣的場景,業務層面需要頻繁的創建修改定時任務,在考慮分佈式的架構下,對於目前可以實現該功能的框架中:MQ 的延時隊列無法動態調整任務參數; redis 的過期策略需要保存太久的 key 且可能會有 BigKe ⌘ Read more

⤋ Read More

Google 的 AI 防護方案 - AI Protection
在 Google Next 2025 上,Google 推出一款全新解決方案 -AI Protection,保護整個 AI 生命週期內降低風險。 這是一個結合 AI 與數據安全的方案,非常有前瞻性,值得看看。方案概要AI Protection 通過以下方式幫助團隊全面管理 AI 風險:主要有三個功能:①發現您環境中的 AI 資產並評估其潛在漏洞②通過控制、政策和護欄保護人工智能資產,這是重點③通過 ⌘ Read more

⤋ Read More

代碼覆蓋率新玩法:Russ Cox 教你用差異化分析加速 Go 調試
大家好,我是 Tony Bai。調試,尤其是調試並非自己編寫的代碼,往往是軟件開發中最耗時的環節之一。面對一個失敗的測試用例和龐大的代碼庫,如何快速有效地縮小問題範圍?Go 團隊的前技術負責人 Russ Cox 近期分享了一個雖然古老但極其有效的調試技術——差異化覆蓋率 (Differential Coverage)。該技術通過比較成功和失敗測試用例的代碼覆蓋率,巧妙地 “高亮” 出最可能包含 B ⌘ Read more

⤋ Read More

乾貨!支付業務如何防止資損?
防止資損是支付系統最重要的目標之一,不論是進行支付中臺建設,還是作爲業務系統接入支付能力,涉及到資金流轉的場景需謹慎!謹慎!再謹慎!定義資損狹義的 “資損” 是直接資金損失,涉及到資金流轉過程發生的賬戶金額損失,比如用戶多扣了錢、商戶少收了錢等等。廣義的資損是指間接的資金損失,在由於某些原因導致潛在收款失敗,比如系統宕機導致大量用戶無法進行支付付款。資損的本質是由於產品、技術或安全等原因導致的相關 ⌘ Read more

⤋ Read More