yue-fang-readfog

feeds.twtxt.net

No description provided.

Recent twts from yue-fang-readfog

MySQL 事務篇:ACID 原則、事務隔離級別及事務機制原理剖析
引言–   衆所周知,MySQL數據庫的核心功能就是存儲數據,通常是整個業務系統中最重要的一層,可謂是整個系統的 “大本營”,因此只要MySQL存在些許隱患問題,對於整個系統而言都是致命的。那此刻不妨思考一個問題: MySQL在接受外部數據寫入時,有沒有可能會發生問題呢?有人也許會笑着回答:“那怎麼可能啊,MySQL在寫入數據時怎麼會存在問題呢”。   的確,MySQL本身在寫入數據時並不會有 ⌘ Read more

⤋ Read More

微服務 - 分庫分表的自增主鍵 ID 該如何設計?
一. 前言—–分佈式 ID 是分佈式系統裏面非常重要的一個組成部分,那麼我們在設計分佈式 ID 的時候,需要考慮什麼問題呢?❓簡單結構下是怎麼實現 ID 的控制的? 單實例系統 :通過時間戳,系統內自增,上鎖等方式保證 ID 的唯一性 單數據庫實例 : 通過自增字段(不談性能)實現 ID 的唯一 ❓微服務 + 分庫分表了 ,又該如何進行控制? 問題 : 單個系統沒辦法 ⌘ Read more

⤋ Read More

優化內存訪問效率:理解 TLB 緩存原理和應用
TLB 是 Translation Lookaside Buffer(地址轉換後備緩衝器)的縮寫,它是一種硬件緩存結構,用於加速虛擬內存地址到物理內存地址的轉換。在計算機系統中,使用虛擬內存可以使每個程序都有獨立的地址空間,並且能夠更高效地利用系統資源。然而,由於虛擬內存需要通過頁表將虛擬地址轉換爲物理地址,這一過程可能會引起較大的延遲。爲了加速地址轉換過程,TLB 作爲一個特殊的高速緩存被引入。 ⌘ Read more

⤋ Read More

如何使用 Rust 和 Kafka 進行高效的文件共享?
在當今相互關聯的世界中,高效的文件共享是許多應用程序的基本需求,特別是在分佈式環境中運行的應用程序。在本文中,我們將探索如何利用 Kafka 和 Rust 的強大功能來構建高效的文件共享系統。構建項目使用以下命令創建一個 Rust 新項目:cargo new rust-kafka在深入實現細節之前,讓我們簡要討論一下 rdkafka,它是 Kafka C API 的 Rust 綁定。rdkafka ⌘ Read more

⤋ Read More

yq:基於 Go 實現處理 YAML、JSON、XML、CSV、TOML 的命令行工具
在現代開發和運維的世界中,處理和轉換不同格式的數據文件如 YAML、JSON、XML、CSV 等是日常任務。文件格式的多樣性和複雜性常常給開發者帶來不小的挑戰。在這種情況下,強大的命令行工具能夠極大地簡化工作流程。本文將深入探討一個強大的多功能工具——go yq,它能夠便捷地處理 YAML、JSON、XML、CSV、TOML 以及屬性文件。安裝 go yq——–首先,我們需要安裝 go ⌘ Read more

⤋ Read More

基於 Zookeeper 實現分佈式鎖實踐
基於 Zookeeper 實現分佈式鎖實踐1、什麼是 Zookeeper?Zookeeper 是一個分佈式的,開源的分佈式應用程序協調服務,是 Hadoop 和 hbase 的重要組件。引用官網的圖例: 特徵:zookeeper 的數據機構是一種節點樹的數據結構,zNode 是基本的單位,znode 是一種和 unix 文件系統相似的節點,可以往這個節點存儲或向這個節點獲取數據 通過客戶端 ⌘ Read more

⤋ Read More

Zig HashMap 原理介紹上篇
引言如大多數哈希映射實現一樣,Zig 的 std.HashMap 依賴於兩個函數:hash(key: K) u64 和 eql(keya: K, keyb: K) bool。其中,哈希函數接收一個鍵並返回一個無符號的 64 位整數作爲哈希碼。相同的關鍵字總是會返回相同的哈希碼。然而,爲了處理不同的鍵可能生成相同哈希碼的情況(即碰撞),我們還需要 eql 函數來確定兩個鍵是否相等。這是一些標準做法, ⌘ Read more

⤋ Read More

京東商城高性能多線程併發編程與動態編排框架
一、項目介紹——Gobrs-Async 是一款功能強大、配置靈活、帶有全鏈路異常回調、內存優化、異常狀態管理於一身的高性能多線程併發編程和動態編排框架。爲企業提供在複雜應用場景下動態任務編排的能力。針對於複雜場景下,異步線程複雜性、任務依賴性、異常狀態難控制性;二、解決什麼問題——–在開發複雜中臺業務過程中,難免會遇到調用各種中臺業務數據, 而且會出現複雜的中臺數據依賴關係,在這 ⌘ Read more

⤋ Read More

Linux Kernel:內存分頁機制核心原理
內存分頁機制是一種操作系統的內存管理技術,將進程的虛擬內存空間劃分爲固定大小的頁面,並在需要時將其映射到物理內存中。操作系統會將輔助存儲器(通常是磁盤)中的數據分區成固定大小的區塊,稱爲 “頁”。當不需要時,將分頁由主存(通常是內存)移到輔助存儲器;當需要時,再將數據取回,加載主存中。相對於分段,分頁允許存儲器存儲於不連續的區塊以維持文件系統的整齊。分頁是磁盤和內存間傳輸數據塊的最小單位。分頁 / ⌘ Read more

⤋ Read More

一鍵輕鬆搭建和管理 VPN(WireGuard)的方案,輕鬆實現安全互聯,Star 12-2K!
隨着雲計算、物聯網(IoT)和遠程辦公等技術的發展,VPN 的重要性更加凸顯,並且現有的網絡帶寬質量也越來越好,很多企業和用戶都選擇了 VPN 解決方案來實現多地的互聯(相對傳統的專線,經濟實惠),很多企業和用戶選擇建設 VPN 主要用於以下幾個場景:雲計算業務的發展:雖然現在 “上雲” 和“下雲” 的爭議仍然不休,並且很多大企業確實在 “下雲”,但是對中小企業和個人來說,前期業務部署雲上確實具備 ⌘ Read more

⤋ Read More

圖解 RocketMQ 運行原理
當我們談到可靠的、高吞吐量的分佈式消息隊列,RocketMQ 必將成爲我們不得不提及的一個話題。作爲一個開放、高度可擴展的消息中間件,RocketMQ 已經在各種場景下得到廣泛的應用,如電商、物流、支付等領域。在該領域中,RocketMQ 以其出衆的運行性能和可靠性優勢,贏得了越來越多企業和開發者的信賴。本文將深入剖析 RocketMQ 的運行原理,從 Producer、Broker、Consum ⌘ Read more

⤋ Read More

GO 語言學習筆記: 垃圾回收機制剖析
一、引言—-(一)垃圾回收 概述垃圾回收(Garbage Collection,GC) 是 Go 語言的核心特性之一,是實現內存自動管理的一種形式。golang 的自動垃圾回收屏蔽了複雜且容易出錯的內存操作,讓開發變得更加簡單、高效。在 Go 語言中,從實現機制上來說,垃圾回收可能是最複雜的模塊了。瞭解垃圾回收的機制,有助於更好地理解 Go 語言的內存管理機制,從而更好的使用 Go 語言進行開 ⌘ Read more

⤋ Read More

九種主流的分佈式 ID 生成策略
前言構建分佈式系統時,如何對數據進行唯一標識也是一個至關重要的設計。不僅要符合 B-tree 數據結構以維持查詢性能,還要考慮唯一標識的連續性會不會影響系統安全性。在分庫分表的情況下,還要避免唯一標識重複且高效等等需要考慮的點。爲此,市場就出現了很多分佈式 ID 生成方案。本文將詳細介紹九種主流的分佈式 ID 生成策略供大家參考使用。1、UUIDUUID(Universally Unique Id ⌘ Read more

⤋ Read More

分佈式系統最全詳解 -萬字圖文總結-
大家好,我是 mikechen。分佈式系統是大型網站架構的必經之路,是處理大規模數據、和高併發請求的關鍵,下面我就全面來詳解分佈式系統 @mikechen分佈式系統分佈式系統:是通過網絡連接的多臺獨立計算機 (比如:物理服務器、虛擬機、或容器) 協同工作,共同完成特定任務的計算系統。一般,具體典型的 4 大特點:可擴展性(Scalability):通過增加更多的節點,可以提高系統的處理能力、和存儲 ⌘ Read more

⤋ Read More

探索 Linux 服務端進程的 Socket 連接極限
在構建高性能服務器應用時,理解並正確配置文件描述符(File Descriptor)限制和端口管理至關重要。本文將深入探討 Linux 服務端進程最多能打開多少 socket 連接,以及相關的配置方法。什麼是文件描述符?文件描述符是操作系統用來訪問文件、套接字、管道等資源的索引。每個 socket 連接都會佔用一個文件描述符,因此文件描述符的數量直接決定了服務端能支持的最大連接數。文件描述符限制的 ⌘ Read more

⤋ Read More

深入剖析 Spring 框架:循環依賴的解決機制
你好,我是柳岸花開。什麼是循環依賴?——–很簡單,就是 A 對象依賴了 B 對象,B 對象依賴了 A 對象。圖片在 Spring 中,一個對象並不是簡單 new 出來了,而是會經過一系列的 Bean 的生命週期,就是因爲 Bean 的生命週期所以纔會出現循環依賴問題。當然,在 Spring 中,出現循環依賴的場景很多,有的場景 Spring 自動幫我們解決了,而有的場景則需要程序員來解 ⌘ Read more

⤋ Read More

Rust 日誌高級實戰: 使用 rust-lang-log 與 slog 構建高性能分佈式日誌系統
引言–在前面的教程中, 我們介紹瞭如何使用rust-lang/log與envlogger和log4rs實現基本和高級的日誌功能。本文將進一步探討如何使用slog庫構建高性能的分佈式日誌系統, 適用於大規模生產環境。使用slog庫————slog是一個結構化的、可組合的日誌庫, 專爲高性能和靈活性而設計。它支持各種輸出目標 (如控制檯、文件、網絡) 和過濾器, 並提供了豐富的功能, ⌘ Read more

⤋ Read More

分佈式算法最全詳解 -4 大主流算法圖解-
大家好,我是 mikechen。分佈式算法對於保證分佈式一致性非常的重要,也是構建分佈式的基石,下面我就重點詳解 4 大主流分佈式算法 @mikechenPaxos 算法Paxos 算法是一種用於分佈式一致性的協議,主要解決:分佈式系統中的一致性問題,確保多個節點對共享狀態達成一致。在 Paxos 算法中,有三種角色,分別是:提議者(proposer)、接收者(acceptor)和學習者(lear ⌘ Read more

⤋ Read More

揭祕 Cookie、Session、JWT 之間的關係
登錄認證是任何系統中避不開的一個話題,登錄認證隨着系統架構的演變而出現與架構相適應的方案。下面介紹架構演變過程中登錄常客 Cookie、Session、JWT 之間的關係。1、單體架構    單體架構階段下,前端代碼和後端代碼都在一個項目中,也就不存在跨域問題。此時的登錄認證機制採用的是 Cookie 和 Session 的方式進行。認證的方式如下:    用戶訪問的服務器的時候,攜帶服務 ⌘ Read more

⤋ Read More

Go 命令模式實戰
隨着分佈式應用越來越廣泛,數據操作的一致性需要由業務方來保證,兩個操作不在同一個事務操作失敗時,無法依靠數據庫事務直接回滾,這時需要業務方手動進行回滾。通過命令模式提供新舊數據初始化後,如果執行後有後續操作失敗,業務方可以通過調用 Undo方法進行回滾,無需再編寫數據庫操作代碼優點是減少了回滾代碼的重複編寫,只要提供新舊數據,通過 Do和 UnDo就可以完成對應操作。並且有些時候可能 Undo 方 ⌘ Read more

⤋ Read More

數據庫遷移:爲什麼現代 Go 項目更傾向於使用 Migrate 庫
引言在數據庫管理和維護的世界裏,如何有效地處理數據庫遷移一直是開發者面臨的一個重要問題。尤其是在使用 Go 語言開發的項目中,雖然傳統的. sql 腳本依然可以用於執行數據庫變更,但許多項目更傾向於使用如 Migrate 這樣的庫來管理數據庫遷移。這篇文章將探討使用 Migrate 庫相對於傳統 SQL 腳本的優勢,解析背後的原因,並通過示例展示其使用方法。Migrate 庫簡介“Migrate” ⌘ Read more

⤋ Read More

業務高可用的保障:異地多活架構
無論是高可用計算架構還是高可用存儲架構,它們的核心設計目標均是在部分服務器出現故障時確保系統能繼續運行。然而,在極端情況下,如機房斷電、火災、地震或洪水等,可能導致一個地點的所有服務器同時出現故障,使得整個業務系統癱瘓。即便依靠其他地區的備份系統,全面恢復業務的時間也可能較長,從半小時到 12 小時不等。備份系統由於平時不提供服務,可能存在許多未被發現的潛在問題。如果業務需求是在這種災難性故障發生 ⌘ Read more

⤋ Read More

WebSocket 協議 - 實戰
本文是 WebSocket 系列文章的第 2 篇,第 1 篇主要講述概念原理。本文從實戰角度介紹如何使用 WebSocket。Part1 項目簡介本文實戰項目來自 Mastering WebSockets With Go。實現了一個精簡版的 Web 聊天系統,前端採用 HTML+JS,後端用 Go 實現。注意: 本文對原項目做了一點 UI 顏色調整 在本地構建部署後效果如下,先要登錄後創建 We ⌘ Read more

⤋ Read More

深入理解 OAuth 2-0:原理、流程與實踐
一、什麼是 OAuth 2.0—————1. 什麼是 OAuth 2.0OAuth 2.0 是一套關於授權的行業標準協議。OAuth 2.0 允許用戶授權第三方應用訪問他們在另一個服務提供方上的數據,而無需分享他們的憑據(如用戶名、密碼)。2. OAuth 2.0 應用場景OAuth 2.0 的應用場景非常廣泛,包括但不限於:第三方應用訪問用戶在其他服務上的信息,例如,一個應用 ⌘ Read more

⤋ Read More

分佈式鏈路追蹤系統設計
什麼是分佈式鏈路追蹤系統?分佈式鏈路追蹤系統是一種用於監控和分析在微服務架構中的服務請求流通過程的工具。隨着現代企業轉向微服務架構,一個業務請求往往會涉及多個微服務的調用。這些調用在不同的服務器、不同的服務實例上可能以複雜的鏈式或網狀模式相互作用,當出現性能問題或錯誤時,很難快速定位問題的根源。分佈式鏈路追蹤系統通過收集、存儲並分析服務間的調用信息,幫助開發者和運維人員理解服務請求的流轉過程,從而 ⌘ Read more

⤋ Read More

Nginx 最全詳解 -萬字圖文總結-
大家好,我是 mikechen。Nginx 是非常重要的負載均衡中間件,被廣泛應用於大型網站架構,下面我就全面來詳解 Nginx@mikechenNginxNginx 是一款輕量級的高性能的 Web 服務器和反向代理服務器,是由俄羅斯的程序設計師 Igor Sysoev 所開發。Nginx 處理高併發能力是十分強大的,能經受高負載的考驗,有報告表明能支持高達 50,000 個併發連接數。Nginx ⌘ Read more

⤋ Read More

美團面試:百億級分片,如何設計基因算法?
分庫分表背景知識——–問題 1:爲什麼分庫分表?大家都知道,當一個表(比如訂單表) 達到 500 萬條或 2GB 時,需要考慮水平分表。爲啥? 讀寫併發高場景,單服務器單一數據庫 CPU、內存、網絡 IO 壓力大。所以,需要分庫,一個庫拆成多個庫。同時,數據量大,單表存不下,需要分表,一張表拆分成多個表。總之,分庫分表的原因是:數據量大,選分表; 併發高,選分庫; 海量存儲 ⌘ Read more

⤋ Read More

PB 級數據秒級響應:Uber 實時數據平臺架構演進
引入Uber 是一家科技公司,在 2010 年初推出了讓司機與乘客便捷溝通的應用軟件,從而改變了出租車市場。爲了支持業務,Uber 積極利用數據分析和機器學習模型輔助運營。從 Uber 乘車的動態定價到外賣軟件 Uber Eats 的 “餐廳經理(Restaurant Manager)” 儀表板,都使用實時數據進行高效操作。在本文中,請跟隨筆者一起了解 Uber 如何管理其支持實時應用程序的基礎架 ⌘ Read more

⤋ Read More

Go 中空結構體的用法,我幫你總結全了!
在 Go 語言中,空結構體 struct{} 是一個非常特殊的類型,它不包含任何字段並且不佔用任何內存空間。雖然聽起來似乎沒什麼用,但空結構體在 Go 編程中實際上有着廣泛的應用。本文將詳細探討空結構體的幾種典型用法,並解釋爲何它們在特定場景下非常有用。空結構體不佔用內存空間首先我們來驗證下空結構體是否佔用內存空間:type Empty struct{}var s1 struct{}s2 := E ⌘ Read more

⤋ Read More

Oh-My-Posh: 最可定製且低延遲的跨平臺 - 跨 Shell 提示符渲染器
開發人員在使用命令行工具時,經常需要一個簡潔、美觀且功能強大的提示符。Oh-My-Posh 正是爲滿足這一需求而生的一個項目。作爲一個跨平臺和跨 Shell 的提示符渲染器,Oh-My-Posh 以其高定製性和低延遲性脫穎而出。本文將深入探討 Oh-My-Posh 的功能,包括其安裝、配置、使用及其在不同操作系統和 Shell 中的表現。什麼是 Oh-My-Posh?————— ⌘ Read more

⤋ Read More

深入理解 Linux 內核之 HVO-HugeTLB Vmemmap Optimization-
開場白環境: 處理器架構:arm64 內核源碼:linux-6.6.29 ubuntu 版本:20.04.1 代碼閱讀工具:vim+ctags+cscope 本文主要介紹內存管理中的 HVO(HugeTLB Vmemmap Optimization)特性,通過 HVO 可以節省管理 HugeTLB 頁面元數據(struct page)的 ⌘ Read more

⤋ Read More

使用 Criterion 對 Rust 代碼進行基準測試
在軟件開發領域,性能是最重要的。作爲開發人員,我們努力編寫的代碼不僅能解決問題,而且能高效、快速地解決問題。在使用 Rust 時尤其如此,Rust 是一種以其高性能而聞名的語言。基準測試,即測試軟件以衡量其性能,是軟件開發的一個關鍵方面。它使我們能夠了解代碼的執行情況以及可以在哪裏進行優化。在 Rust 的世界裏,有一種工具能夠達到這個目的:Criterion。Criterion 是 Rust 中 ⌘ Read more

⤋ Read More

認識代數數據類型 ADTs:Rust 枚舉類型很強
在學習 Rust 之前,我還真不知道代數數據類型(ADTs)這個概念。從 Rust 文檔中大概瞭解它包含 “求和類型” 和“乘積類型”,看似很簡單,但我打算展開學習一下代數數據類型。先看一段很教科書的定義:抽象數據類型(Abstract Data Types,簡稱 ADTs)是計算機科學中的一種概念,用於在不關心數據表示的具體細節的前提下,定義數據的方法。ADTs 常由 “構造” 或“複合”兩種基 ⌘ Read more

⤋ Read More

快速喫透 Golang Channels 使用技巧
Golang 可以通過啓動 goroutines 來併發執行任務。它們可以通過一種名爲 “通道” 的通信媒介相互通信。話不多說,下面我列舉了幾種不同情況下 channel 的使用以及其適用條件,最後總結出一張 channel table,能夠幫助你快速喫透 channel 的所有要點。Let’t go!Nil Channels如果你像創建普通變量一樣創建一個通道,通道將被初始化爲零值。這裏要提到的 ⌘ Read more

⤋ Read More

如何將圖片編碼成 base64?
圖片的 base64 編碼在多種上下文中都很有用。當需要通過旨在處理文本數據的媒體存儲或傳輸圖片時,它通常會被使用,比如嵌入到網頁或者通過 API 上傳圖片。這篇文章將介紹如何使用 Go 標準庫得到任何圖片的 base64 編碼的值。在 Go 中將圖片轉換爲其 base64 表示很容易。所有你需要做的是將文件讀取爲字節 slice 並使用包 encoding/base64 對其進行編碼。處理本地圖 ⌘ Read more

⤋ Read More

Web AI:下一代 Web 應用的新模型、工具、API
大家好,我是 ConardLi。 AI 時代,和我們前端開發結合最緊密的就是當下炒的非常火熱的 Web AI 技術了。今天跟大家一起來聊聊本屆 Google I/O 開發者大會上關於 Web AI 的主題分享:《Web AI: On-device machine learning models and tools for your next project》傳統上,人工智能和機器學習模型的計算任 ⌘ Read more

⤋ Read More

百萬級任務重試框架 Fast-Retry
前言假設你的系統裏有 100 萬個用戶,然後你要輪詢重試的獲取每個用戶的身份信息, 如果你還在使用 SpringRetry 和 GuavaRetry 之類的這種單任務的同步重試框架,那你可能到猴年馬月也處理不完, 即使加再多的機器和線程也是杯水車薪, 而 Fast-Retry 正是爲這種場景而生Fast-Retry一個高性能的多任務重試框架,支持百萬級任務的異步重試、以及支持編程式和註解聲明式等多 ⌘ Read more

⤋ Read More

Go:深入理解互斥鎖,實現與應用
在併發編程中,互斥鎖是一種基本的同步機制,用於保護共享資源不被多個線程或進程同時訪問,從而避免數據競爭和保證數據的一致性。本文將深入探討互斥鎖的概念、工作原理,並通過 Go 語言的具體實現來展示互斥鎖在實際編程中的應用。互斥鎖的基本概念互斥鎖(Mutex)是最簡單的一種鎖形式,它僅允許一個線程在同一時刻訪問某個資源。當一段代碼被定義爲臨界區時,任何線程在進入該區域前必須先獲得互斥鎖的授權,並在離開 ⌘ Read more

⤋ Read More

SQLite 中常用日期和時間函數及案例
準備工作—-首先準備一個 DB 文件,裏面創建一張訂單表workorder,建表語句如下:CREATE TABLE ”workorder” (  ”orderid” REAL,  ”orderstatus” REAL,  ”ordertime” TEXT,  ”consignstatus” REAL,  ”consigntime” TEXT,  ”paytime” TEXT,  ”post ⌘ Read more

⤋ Read More

利用 Go 語言加速 Redis 操作:掌握 go-redis 包的高效應用技巧
一、golang 操作 redis 1、安裝初始化文件夾 c:\aaa mkdir testredisc:\aaa\testredis go mod init testredis安裝 go get github.com/go-redis/redis/v82、基本使用 package mainimport ( “context” “fmt” “github.com/go-r ⌘ Read more

⤋ Read More

Rust 診斷利器:Tokio 官方維護的 Tracing 開源項目
在軟件開發過程中,可靠且高效的診斷系統是必不可少的組成部分。Rust 社區爲此提供了一個優秀的解決方案:Tracing。Tracing 是由 Tokio 項目維護的一個框架,目的是爲 Rust 程序提供結構化和事件驅動的診斷信息。重要的是,儘管它由 Tokio 維護,但其使用並不強制依賴於 tokio 運行時。本文將深入介紹 Tracing 的使用和特性,幫助開發者更好地利用這一工具提高開發效率。 ⌘ Read more

⤋ Read More

一套完整的即時通訊解決方案
背景介紹在當今的數字時代,即時通訊(IM)已成爲人們日常溝通不可或缺的一部分。無論是個人用戶還是企業,在不同的應用程序和服務中都需要高效、可靠的即時通訊功能。然而,開發一個既能支持海量用戶又能提供穩定服務的 IM 系統,對於許多開發者來說都是一個巨大的挑戰。問題包括但不限於如何處理大量消息的存儲與傳輸、如何保證消息的實時性與可靠性、以及如何進行高效的用戶和羣組管理等。今天要給大家推薦一個 GitH ⌘ Read more

⤋ Read More

Rust 日誌利器 env_logger:小白也能快速上手
引言–在 Rust 編程中,日誌是非常重要的一個組成部分。本文將爲大家介紹一款優秀的 Rust 日誌庫—— envlogger,並通過實例講解如何快速上手使用它。創作背景—-筆者在學習 Rust 過程中,發現日誌在調試程序、記錄關鍵信息等方面扮演着至關重要的角色。在衆多 Rust 日誌庫中,envlogger 因其簡單易用和強大的功能脫穎而出,深得廣大 Rust 開發者的喜愛。因此,將 en ⌘ Read more

⤋ Read More

Go:標準庫 Arena 的內存管理優化解析
引言–在 Go 語言的衆多標準庫中,arena庫是一個相對較新且不爲人知的部分,還處於試驗階段。這個庫提供了一種管理內存分配的有效方式,尤其適用於處理大量小型對象,能夠顯著減少內存碎片和提高內存使用效率。本文將深入探討arena庫的設計理念、使用方法以及它如何優化 Go 語言程序的內存管理。arena庫概述———-arena庫的核心思想是提供一個連續的內存塊,讓開發者可以在其中快速分 ⌘ Read more

⤋ Read More

Rust 語言實現基於 WebSocket 和 HTTP2 的流量隧道
在當下的網絡環境下,我們常常會遇到訪問限制,比如防火牆或者代理限制了我們使用某些協議或訪問互聯網的某個部分。wstunnel 是一個基於 WebSocket 或 HTTP2 協議來轉發流量的工具,其主要目的就是爲了繞過這些限制,讓用戶自由的訪問所需資源。wstunnel 簡介———–wstunnel 是一個使用 WebSocket 協議穿透防火牆和代理的工具。它允許你隧道化任意流量, ⌘ Read more

⤋ Read More

用 rust 手擼一致性 hash 算法
table data-sort=“sortDisabled” width=“578”tbodytrtd valign=“top” align=“center” width=“577” class=““section class=”“strong背景/strong/section/td/tr/tbody/table隨着互聯網規模的發展,單機服務已無法滿足業務的需求,分佈式架構應運而生。在分佈式環境下 ⌘ Read more

⤋ Read More

一篇大模型 Agent 工具使用全面研究綜述
使用大型語言模型(LLMs)進行工具學習已成爲增強 LLMs 能力以解決高度複雜問題的一個有希望的範式。儘管這一領域受到越來越多的關注和快速發展,但現有的文獻仍然分散,缺乏系統性的組織,爲新來者設置了進入障礙。因此對 LLMs 工具學習方面的現有工作進行全面調查,從兩個主要方面展開:(1)爲什麼工具學習是有益的;(2)如何實現工具學習,以全面理解 LLMs 的工具學習。根據工具學習工作流程中的四個 ⌘ Read more

⤋ Read More

Go:雙向鏈表實現,container-list 包探討
引言在 Go 語言的標準庫中,container/list包提供了雙向鏈表的實現。鏈表是一種常見的數據結構,它通過節點的序列實現,每個節點都包含數據及對前一個節點和後一個節點的引用。Go 語言的container/list包提供了操作鏈表的多種方法,如插入、刪除、搜索和移動元素等。本文將深入探討container/list包,解析其實現的內部機制,並通過示例展示如何在 Go 程序中有效地使用此包。 ⌘ Read more

⤋ Read More

Redis 深度解析:跳躍表的原理與應用
一、跳躍表簡介——-跳躍表SkipList是一種有序的數據結構,是 Redis 有序集合的底層實現之一。跳躍表中,數據被存儲在節點中,每個節點包含一個數據元素和一組指向其他節點的指針。這些指針分佈在不同的層級,用於提升跳躍表的訪問性能。跳躍表支持平均O(log N)、最壞O(N)複雜度的查找性能,並且支持通過順序性操作來批量處理節點。在大部分情況下,跳躍表的效率可以和平衡樹相媲美,並且因爲 ⌘ Read more

⤋ Read More