tag go

標籤
貢獻242
335
05:15 PM · Oct 25 ,2025

@go / 博客 RSS 訂閱

侯磊 - 【golang】go語言中map導致的內存泄漏問題

go語言的map回收機制 在 Golang 中的 map 結構,在刪除鍵值對的時候,並不會真正的刪除,只是標記當前的key狀態為empty。我們下面的程序作為例子,看看當我們在刪除map中鍵值對時的內存變化,並瞭解如才能真正實現對鍵值對的垃圾回收。 程序基本流程為:在initMap()中,向map結構中插入10000對鍵值對,然後在全部刪除,通過runtime.MemStats打印內存使用情況。

內存泄漏 , 垃圾回收 , go

收藏 評論

kevinwan - 服務發現原理分析與源碼解讀

在微服務架構中,有許多繞不開的技術話題。比如服務發現、負載均衡、指標監控、鏈路追蹤,以及服務治理相關的超時控制、熔斷、降級、限流等,還有RPC框架。這些都是微服務架構的基礎,只有打牢這些基礎,才敢説對微服務是有了一點理解,出門也好意思和別人打招呼了,被人提問的時候也能侃侃而談了,線上出了問題往往也能尋根溯源內心不慌了,旁邊的女同事小芳看着你的時候也是滿眼的小可愛了。 在《微服務實踐》公眾號,之前寫

grpc , go-zero , web開發 , 服務發現 , go

收藏 評論

香吧香Blog - Go語言Panic異常服務崩潰

轉載請註明出處:   一、 Go 的異常處理哲學:顯式錯誤處理   與 Java語言使用try-catch進行“控制流逆轉”的異常處理不同,Go 語言的設計哲學是“錯誤是值”。 多返回值與錯誤值 Go 函數通常返回一個(result, error)對。調用者必須顯式地檢查這個error值。 file, er

棧展開 , 控制流 , 後端開發 , JAVA , go

收藏 評論

王中陽講編程 - 深度討論:GoFrame是否真能復刻Laravel的開發體驗?

最近賊有意思,發現了一個賬號,專門發PHP轉Go的帖子,哎呦喂,這不正是我3年前做的事情嗎?哈哈。 尤其看到他寫的安利GoFrame教程的文章,有點刺激到我了,一看他就沒我用的多,用的溜,因為我不僅在公司用GoFrame做過商業項目,還寫過專欄,出過教程。 作為一名深耕PHP多年的開發者,Laravel的優雅與高效早已刻入我的開發習慣。當業務需求朝着高併發、高性能方向升級,Go語言成為必然選擇

php , go , 後端

收藏 評論

gvison - 手寫CRUD的時代結束了!低代碼框架Sponge重新定義Go開發效率極限

作為Go開發者,愛它的簡潔,愛它的併發,愛它的性能。但説句心裏話,你有沒有被實現一個簡單API到底要寫多少代碼這個問題困擾過? 從定義struct,到寫handler,再到service、repository,最後註冊路由、處理錯誤、寫文檔……一套流程下來,真正的核心業務邏輯可能就幾行,剩下的全是在寫"膠水代碼"和"八股文"。 我們總開玩笑説自己是"面向CV編程工程師",但夜深人靜的時候,你有沒有

grpc , 低代碼 , gin , go , 後端

收藏 評論

蘇琢玉 - PHP 日誌系統的最佳搭檔:一個 Go 寫的遠程日誌收集服務

之前折騰了一個 PHP 日誌系統,終於能讓項目的錯誤信息乖乖地記錄到日誌裏了。但問題又來了:日誌是存了,可我怎麼知道它什麼時候爆炸了? 有些錯誤輕微到無關緊要,有些錯誤嚴重到能把整個系統送走,但如果我要知道這些錯誤,我得 SSH 進服務器,然後手動去翻日誌,效率低得要死。而且,多個服務器運行着同樣的代碼,有的報錯,有的沒事,我根本不知道到底哪裏出了問題。 於是,為了在 bug 出現的時候第一時間收

日誌分析 , php , go

收藏 評論

海生 - protobuf 使用其他消息類型message的三種方式

更方便的在微信公眾號閲讀文章可以關注公眾號:海生的go花園 在我們寫protobuf最基礎的是有 基本的數字,字符串,枚舉類型組成,在這些基礎的類型基礎上,我們組合成一個message類型。 接下來我們探討一下,如何在message裏面再使用其他的message類型。 方式一:使用其他消息類型作為字段類型 您可以使用其他消息類型作為字段類型。 例如,我們想在SearchResp

protobuf , go

收藏 評論

gvison - 一鍵生成 HTTP + gRPC 混合架構微服務代碼:更簡單、更靈活、更兼容的微服務系統構建方式

在現代微服務架構中,單純依賴 gRPC 並不能覆蓋所有的應用場景,因此結合 HTTP 協議可以提供更加全面的服務支持。本文將介紹如何通過一鍵生成 HTTP + gRPC 通用混合架構的微服務代碼,以構建更靈活、更兼容的微服務系統。 為什麼選擇 HTTP + gRPC 服務? 兼容性更強 瀏覽器支持: HTTP 是 Web 應用的基礎,允許瀏覽器直接訪問,而 gRPC 需要額外

grpc , 微服務 , HTTP , gin , go

收藏 評論

粘豆煮包 - 腦抽研究生Go併發-1-基本併發原語-上-Mutex、RWMutex、WaitGroup

基本併發原語 臨界區:避免程序中併發訪問或修改造成嚴重後果。 數據庫、共享數據結構、I/O 設備、連接池中的連接 同步原語 包含:互斥鎖 Mutex、讀寫鎖 RWMutex、併發編排 WaitGroup、條件變量 Cond、Channel 等 適用場景: 共享資源 任務編排:goroutine + WaitGroup/Channel 消息傳遞:goroutine +Channel。

goroutine , 知識 , concurrency , go , 後端

收藏 評論

Yuan_sr - Select多路複用

在某些場景下我們需要同時從多個通道接收數據。通道在接收數據時,如果沒有數據可以接收將會發生阻塞,而select就可以同時監聽一個或多個channel,直到其中一個channel準備好。 select的使用類似於switch語句,它有一系列case分支和一個默認的分支。每個case會對應一個通道的通信(接收或發送)過程。select會一直等待,直到某個case的通信操作完成時,就會執行case分支對

goroutine , select , go

收藏 評論

liuyuede - golang中的字符串

0.1、索引 https://waterflow.link/articles/1666449874974 1、字符串編碼 在go中rune是一個unicode編碼點。 我們都知道UTF-8將字符編碼為1-4個字節,比如我們常用的漢字,UTF-8編碼為3個字節。所以rune也是int32的別名。 type rune = int32 當我們打印一個英文字符hello的時候,我們可以得到s的長度為5,因

字符串 , go

收藏 評論

liuyuede - golang垃圾回收

0.1、索引 https://waterflow.link/articles/1664943418972 文中提到的垃圾回收算法是基於go1.16之後的,讓我們直接進入正題吧。 1、什麼時候需要垃圾回收? Go 更喜歡在堆棧上分配內存,因此大多數內存分配最終都會在棧上。 這意味着 Go 每個 goroutine 都有一個堆棧,並且在可能的情況下,Go 會將變量分配給這個堆棧。 Go 編譯器試圖通

垃圾回收 , go

收藏 評論

vistart - 從簡單到複雜:多進程環境下的加權隨機選擇算法

引言 在分佈式系統中,我們經常需要實現負載均衡、流量分配、A/B 測試等功能。這些場景的核心問題是:如何按照預設的權重比例,在多個候選項中進行隨機選擇? 更具挑戰性的是,當多個進程同時運行、隨時可能加入或退出時,如何保證整體的選擇分佈仍然符合預期的權重比例? 本文將從最簡單的均勻隨機選擇開始,逐步深入到加權隨機選擇,最後解決多進程環境下的分佈一致性問題,並給出嚴格的數學證明。 完整代碼:https

選擇器 , 數學 , 隨機訪問 , 概率 , go

收藏 評論

gvison - 一個企業級高質量開發框架 sponge,幫助你大幅提高開發效率和降低開發難度

在當今快節奏的軟件開發環境中,提高效率至關重要。開發人員持續尋求工具和技術,以縮短開發時間併產出更高質量的應用程序。本文將介紹一款創新性的開發框架,它可以大幅提高開發項目效率同時降低開發難度,並支持多種常用的數據庫。 如果開發只有簡單CRUD api接口的web或微服務,不需要編寫任何go代碼就可以編譯並部署到linux服務器、docker、k8s上,只需要連接到數據庫(mysql、mongodb

gorm , grpc , 微服務 , gin , go

收藏 評論

代碼保安 - 如何用Go開發一個高效的文件處理工具

Go語言在文件處理和併發方面有天然優勢,下面是一個完整的實現方案: 1. 基礎文件處理工具框架 package main import ( "bufio" "fmt" "io" "os" "path/filepath" "sync" "time" ) // FileProcessor 文件處理器接口 type FileP

Go語言 , 文件處理 , 後端開發 , go

收藏 評論

Peleus - go-carbon v2.2.14 發佈,輕量級、語義化、對開發者友好的 Golang 時間處理庫

carbon 是一個輕量級、語義化、對開發者友好的 golang 時間處理庫,支持鏈式調用。 目前已被 awesome-go 收錄,如果您覺得不錯,請給個 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安裝使用 Golang 版本大於等於 1.16 // 使用 github 庫 go get -u git

datetime , date , carbon , go

收藏 評論

amc - 每天學點 Go 規範 - 代碼不能寫太寬,那麼函數該怎麼換行呢?

公司內部的 Go 代碼規範中限制了每一行代碼的寬度。為了滿足這個規範,那些太寬的代碼行就不可避免地需要換行。換行不是普通的回車就行,如何在換行的同時,保持代碼優秀的可讀性,筆者根據日常 code review 中看到的各種模式,提出一些建議。 上一篇文章:每天學點 Go 規範 - 函數傳參時,struct 應該傳值還是引用 規範和原因 公司的 Go 規範統一要求每一行 Go 代碼不能超過 1

規範化 , 代碼規範 , go

收藏 評論

丘比特 | fd - 使用 Vue3 + Element Plus + Go 重構 ferry 工單系統

使用 Vue3 + Element Plus + Go 重構 ferry 工單系統 項目介紹 2020 年 7 月 13 日,我第一次提交了 ferry 工單系統的代碼,當時其實就是想將自己心中構思的工單系統實現出來。出乎意料的收到了大家關注,同時登上了 github 和 gitee 的榜單,讓這個系統讓更多的人知道了。 由於之前架構設計的有些許潦草,所以部分地方其實拓展起來是有點乏力的。且技術大

workflow , vue3 , go

收藏 評論

王中陽講編程 - 手把手教你用 GoFrame 實現 RBAC 權限管理,從零到一搞定後台權限系統

最近在優化電商後台項目的時候,權限管理這塊踩了不少坑。今天就把我的實戰經驗分享出來,希望能幫到正在做類似需求的朋友們。 前言 做後台管理系統,權限管理幾乎是綁死的需求。但説實話,很多教程要麼講得太理論,要麼代碼不完整跑不起來。 我們這次正好優化了一下 GoFrame 電商項目,做了一套完整的 RBAC 權限系統,從數據庫設計到中間件實現,全程實戰代碼。文章有點長,建議先收藏,慢慢看。 一、先搞清楚

goframe , go

收藏 評論

江湖十年 - 在 Go 中使用 cron 執行定時任務

首發公眾號地址:https://mp.weixin.qq.com/s/bCgGnw9QYTTBuoEktTYZcw 如果你曾經在 Go 中實現過定時任務,可能會發現,原生的 time.Timer 或 time.Ticker 雖然簡單易用,但在複雜的場景下(如多任務調度、時區處理、任務失敗重試等)往往顯得力不從心。這時,一個功能強大且靈活的定時任務庫就顯得尤為重要。 github.com/robfi

定時任務 , 面試 , cron , go , 後端

收藏 評論

粘豆煮包 - 腦抽研究生Go併發-6-實際應用場景(大模型生成)-淘寶“雙十一”零點秒殺,支撐一個千萬播放量、百萬評論的爆款視頻

實際應用場景(大模型生成) 場景設定:設計淘寶“雙十一”零點秒殺一個超熱門商品(比如 茅台)的後端系統 業務挑戰: 超高峯值流量:在零點鐘聲敲響的第一秒,可能會有數百萬用户同時點擊“搶購”按鈕。 數據強一致性:庫存只有 1000 瓶,絕對不能超賣。即賣出第 1001 瓶。 高可用性:系統不能崩潰。 公平性:儘量保證先到先得。 實施過程:一場精心編

觀點 , goroutine , concurrency , go , 後端

收藏 評論

Keson - sqlgen,支持 gorm, xorm, sql, sqlx, bun 等 orm的新型代碼生成工具

一直找不到一個好的 sqlgen 生成工具,參考 sqlc,goctl 寫了一個工具,支持 bun, gorm, sql, sqlx, xorm 生成,使用還是比較簡單,開發者只需要寫一個 sql 文件即可通過 sqlgen 生成代碼。 支持從 sql 文件和 dsn 兩種數據來源 https://github.com/anqiansong...

MySQL , generator , SQL , go

收藏 評論

西山雨 - 體驗開源IAM系統 - authelia

開源調研 authelia 是目前勢頭最猛的,star數最高的開源 IAM 系統。 參考文檔 https://github.com/topics/sso https://medium.com/@devops.en... https://github.com/kdeldycke/... https://sendoh-daten.medium.c... https://news.ycom

oauth2.0 , identity , sso , go , 後端

收藏 評論

楊帆 - golang goroutine 協程原理

goroutine簡介 goroutine的本質是協程,是實現並行計算的核心。goroutine使用方式非常的簡單,只需使用go關鍵字+方法或者方法模塊即可啓動一個協程。並且它是處於異步方式運行,你不需要等它運行完成以後在執行以後的代碼。 go func()//通過go關鍵字啓動一個協程來運行函數 goroutine內部原理 概念介紹 在進行實現原理之前,瞭解下一些關鍵性術語的概念。 併發 一個

goroutine , go

收藏 評論