Go語言讀取YAML 配置文件的兩種方式分享
目錄前言yaml.v3包讀取yaml文件viper包讀取yaml文件小結前言在日常開發中,YAML格式的文件基本上被默認為是配置文件,其內容因為縮進帶來的層級感看起來非常直觀和整潔。本文... ...
一文帶你了解Go語言標準庫math和rand的常用函數
目錄math標準庫Abs函數Max函數Min函數CeilFloor函數Trunc函數Dim函數Mod函數Pow函數Sqrt函數Cbrt函數Modf函數rand代碼示例小結mat... ...
RabbitMq如何做到消息的可靠性投遞
目錄如何保證消息不丟失Go實現安裝操作庫發送端的確認消費端的確認如何保證消息不丟失在使用RabbitMQ的時候,我們需要保證消息不能丟失,消息從生產者生產出來一直到消費者消費成功,這條鏈路是這樣的:... ...
GoLang RabbitMQ實現六種工作模式示例
目錄六種工作模式介紹1.簡單(Simple)模式2.工作隊列(WorkQueue)模式3.發布/訂閱(Pub/Sub)模式4.路由(Routing)模式5.通配符(Tpoic)模式Go語言的實現安裝... ...
GoLang完整實現快速列表
目錄快速列表介紹實現快速列表快速列表的結構快速列表的迭代器添加和插入元素刪除元素遍歷快速列表完整實現快速列表介紹快速列表(quicklist)是Redis中特有的一種數據結構,主要是為了解決雙端鏈表的... ...
Golang sync.Map原理深入分析講解
目錄GO語言內置的mapsync.Mapsync.Map原理分析sync.Map的結構查找新增和更新刪除GO語言內置的mapgo語言內置一個map數據結構,使用起來非常方便,但是它僅支持并發的讀,不支... ...
GoLang協程庫libtask學習筆記
目錄協程解決了什么問題簡介對協程的抽象如何保存上下文信息協程的調度總結協程解決了什么問題我們先從一次網絡IO請求過程中的read操作為例,請求數據會先拷貝到系統內核空間中,再從操作系統的內核空間拷貝到... ...
Golang排序和查找使用方法介紹
目錄排序的介紹交換式排序法二維數組的介紹二維數組的應用場景二維數組快速入門二維數組的使用排序的介紹排序是將一組數據,依指定的順序進行排列的過程。排序的分類:1.內部排序:指將需要處理的所有數據都加載到... ...
Golang時間及時間戳的獲取轉換超全面詳細講解
目錄獲取時間獲取之前/之后的時間獲時間戳獲取當前時間戳時間轉時間戳時間戳轉時間獲取時間獲取當前時間packagemainimport(fmttime)funcma... ...
Golang map實現原理淺析
目錄map的聲明map聲明map使用的方式map遍歷map切片map排序map使用細節map的練習題map的聲明基本語法varmap變量名map[keytype]valuetypekey可以是什... ...
Go語言使用組合的思想實現繼承
目錄前言類型嵌入結構體類型嵌入接口類型嵌入小結前言Go語言的設計之初,就不打算支持面向對象的編程特性,因此Go不支持面向對象的三大特性之一繼承。但是Go可以通過組合的思想去實現繼承。繼承是... ...
GoLang內存泄漏原因排查詳解
目錄背景臨時性內存泄漏通道理解背景Go語言中有對應的Go內存回收機制,在Go采用并發三色標記清除算法,但是由于實際的過程中發現會有一些內存泄漏的常見,內存泄漏分為:臨時性和永久性內... ...
GoLang RabbitMQ TTL與死信隊列以及延遲隊列詳細講解
目錄TTL死信隊列延遲隊列Go實現延遲隊列TTLTTL全稱TimeToLive(存活時間/過期時間)。當消息到達存活時間后,還沒有被消費,就會被自動清除。RabbitMQ可以設置兩種過期時間:... ...
Go編程庫Sync.Pool用法示例詳解
目錄場景用法創建GETPUT優化Log函數性能測試場景go如果頻繁地創建、銷毀對象(比如http服務的json對象,日志內容等),會對GC造成壓力。比如下面的Log函數,在高... ...
GOLang單元測試用法詳解
目錄概念gotest基本用法gotest基礎用例測試可執行程序外部測試包解決循環依賴測試覆蓋比例測試基準函數概念單元測試UT測試,針對程序來進行正確檢測測試工作,一個優秀強壯代碼需要有完美的... ...
Go 庫bytes.Buffer和strings.Builder使用及性能對比
目錄前言bytes.Buffer和strings.Builder用法區別性能對比前言字符串拼接是老生常談了。在Go語言中,常見的拼接字符串的方法有:用+號,或者使用fmt包的Sprintf。s... ...
Go 庫性能分析工具pprof
目錄場景pprof生成profile文件CPU性能分析內存性能分析分析profile文件優化代碼gotoolpproftop命令list命令總結場景我們一般沒必要過度優化Go... ...
GoLang逃逸分析講解
目錄概念逃逸分析準則逃逸分析大致思路概念當一個對象的指針在被多個方法或者線程引用,稱為逃逸分析,逃逸分析決定一個變量分配在堆上還是棧上,當然是否發生逃逸是由編譯器決定的分配棧和堆上變量的問題1.局... ...
Go Generate 代替 Makefile使用方法詳解
目錄介紹MockeryGoGenerate用法總結介紹圖靈完備性(Turingcompleteness)是通用計算機的一個屬性,它表示一個程序可以寫另一個程序。比如gotest命令:它會掃描... ...
GoLang內存模型詳細講解
目錄棧內存-協程棧-調用棧逃逸分析go堆內存堆如何進行分配go語言對象的垃圾回收如何減少GC對性能的分析GC優化效率棧內存-協程棧-調用棧為什么go的棧是在堆上?go協程棧的位置:go的協程... ...
Go單元測試利器testify使用示例詳解
目錄testifyassert包require包mock包suite包testify在團隊里推行單元測試的時候,有一個反對的意見是:寫單元測試耗時太多。且不論這個意見對錯,單元測試確實不應該太... ...
Go庫text與template包使用示例詳解
目錄場景text/template包基本用法模板語法空白字符常用Action函數總結場景現在的項目,基本都是前后端分離,后端只要提供Json等格式的數據就行。在這個背景下,模板渲染這個功能備受冷落... ...
GoLang日志監控系統實現
目錄日志監控系統項目簡答介紹系統架構讀取模塊具體實現日志解析模塊日志監控系統Nginx(日志文件)-log_process(實時讀取解析寫入)-influxdb(存儲)-grafana(前... ...
GoLang并發機制探究goroutine原理詳細講解
目錄1.進程與線程2.goroutine原理3.并發與并行3.1在1個邏輯處理器上運行Go程序3.2goroutine的停止與重新調度3.3在多個邏輯處理器上運行Go程序通常程序會被編寫為... ...
Go Map并發沖突預防與解決
目錄背景并行單元測試支持并發的Mapsync.RWMutexsync.Map背景關于Go語言的Map,有兩個需要注意的特性:Map是并發讀寫不安全的,這是出于性能的考慮;Map并發讀寫導致... ...